Maison >développement back-end >Tutoriel Python >Comment le module de contrôle `__all__` de Python importe-t-il avec `from import *` ?
Dévoilement du rôle de "__all__" en Python
La liste "__all__" dans un fichier "__init__.py" joue un rôle essentiel pour contrôler quels symboles sont exportés lorsque "from
Plus précisément, "__all__" définit une liste de chaînes qui représentent les symboles du module qui seront accessibles lorsque la syntaxe générique "import *" est utilisée. Par exemple, considérons le code suivant dans un module nommé "foo.py" :
__all__ = ['bar', 'baz'] waz = 5 bar = 10 def baz(): return 'baz'
Dans cet exemple, les symboles "bar" et "baz" sont explicitement exportés en utilisant "__all__". De ce fait, lorsque vous importerez le module "foo" avec "from foo import *", seuls ces deux symboles seront disponibles. Tous les autres symboles, tels que « waz », seront masqués.
from foo import * print(bar) print(baz()) # Attempting to access "waz" will raise an exception. print(waz)
Si la liste « __all__ » est commentée, le comportement d'importation par défaut prend effet, où tous les symboles qui ne commencent pas par un trait de soulignement sont importés. Dans ce cas, l'instruction d'importation réussirait et "waz" serait également accessible.
# Comment out __all__ from foo import * print(bar) print(baz()) print(waz)
Il est important de noter que "__all__" n'affecte que la syntaxe "from
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!