python - __all__ 在 Python 中是什么意思?

标签 python syntax namespaces

我在 __init__.py 文件中看到了 __all__。它有什么作用?

最佳答案

__all__ 相关联但未在此处明确提及的确切时间用来。它是一个字符串列表,定义在 from <module> import * 时将导出模块中的哪些符号。在模块上使用。

例如,foo.py 中的以下代码显式导出符号 barbaz :

__all__ = ['bar', 'baz']

waz = 5
bar = 10
def baz(): return 'baz'

然后可以像这样导入这些符号:

from foo import *

print(bar)
print(baz)

# The following will trigger an exception, as "waz" is not exported by the module
print(waz)

如果 __all__上面被注释掉,这段代码将执行完成,作为 import * 的默认行为是从给定的命名空间中导入所有不以下划线开头的符号。

引用:https://docs.python.org/tutorial/modules.html#importing-from-a-package

注意: __all__影响 from <module> import *仅行为。 __all__ 中未提及的成员仍然可以从模块外部访问,并且可以使用 from <module> import <member> 导入.

关于python - __all__ 在 Python 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44834/

相关文章:

objective-c - Objective-C中函数名前 "+"和 "-"的区别

c++ - 为什么我需要做 'using namespace std' 而不是 'using std::cout' ?

php - 修补 Laravel 8,无法获得关系

python - 如何修复类型 "object of type ' CategoricalDtype' has no len()"的错误?

python - 使用 __set__ 获得类级别类型描述符的方法

python - __dict__ 终极基类的属性,Python 中的对象

c++ - 在C++中,分支预测器是否预测隐式条件语句?

python - 使用 PIL.resize 调整 JPG 大小会得到全黑图像

c - 什么是 'void (*old_sigint_handler)(int)' ?

c# - 命名空间/引用错误