揭示“__all__”在Python中的作用
“__init__.py”文件中的“__all__”列表起着关键作用当使用“from
具体来说,“__all__”定义了一个字符串列表,这些字符串表示模块中使用“import *”通配符语法时可访问的符号。例如,考虑名为“foo.py”的模块中的以下代码:
__all__ = ['bar', 'baz'] waz = 5 bar = 10 def baz(): return 'baz'
在此示例中,符号“bar”和“baz”是使用“__all__”显式导出的。因此,当您使用“from foo import *”导入“foo”模块时,只有这两个符号可用。所有其他符号,例如“waz”,都将被隐藏。
from foo import * print(bar) print(baz()) # Attempting to access "waz" will raise an exception. print(waz)
如果注释掉“__all__”列表,则默认导入行为生效,其中所有不以下划线开头的符号是进口的。在这种情况下,导入语句将成功,并且“waz”也将可以访问。
# Comment out __all__ from foo import * print(bar) print(baz()) print(waz)
需要注意的是,“__all__”仅影响“from
以上是Python的`__all__`如何通过`from import *`控制模块导入?的详细内容。更多信息请关注PHP中文网其他相关文章!