Établissement de l'accessibilité des variables inter-modules
En Python, une variable inter-modules pratique est __debug__. Cependant, créer une variable personnalisée avec des fonctionnalités similaires peut sembler difficile. Cet article aborde ce sujet en explorant une méthode permettant de définir une variable partagée entre les modules tout en préservant son immuabilité.
Solution : exploiter les variables globales au niveau du module
Pour établir une variable inter-modules sans partager une instance de variable commune, envisagez d'utiliser des variables globales au niveau du module. Ces variables sont définies et affectées au sein d'un module et deviennent accessibles aux autres modules qui l'importent. En attribuant la variable avant d'importer les modules dépendants, une valeur cohérente peut être établie tout au long du projet.
Un exemple est fourni ci-dessous :
a.py:
var = 1
b.py :
import a print(a.var) import c print(a.var)
c.py :
import a a.var = 2
Test :
$ python b.py # Output 1 2
Dans cet exemple, la variable var est définie dans le module a.py et devient accessible au module b.py lors de son importation. Même si le module c.py modifie la valeur de var, le module b.py conserve sa valeur d'origine.
Application du monde réel
Django fournit un cas d'utilisation pratique pour variables partagées au niveau du module. Son module global_settings.py sert d'exemple où les paramètres sont exposés en tant qu'attributs de module plutôt qu'en tant qu'objet partagé unique.
En utilisant cette technique, le partage de variables entre modules peut être réalisé tout en maintenant l'intégrité des variables et en simplifiant le code du module. organisation.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3