Python中的__all__属性,用于限制模块导入,比如:
from module import *
如果导入的模块中定义了__all__属性的话,那么只有在__all__内指定的属性、方法或者类才可以被导入,如果没有定义的话,只会导入所有的公有属性、方法和类。
类中的属性或者方法如果本身是有下划线前缀的话,例如“_name”,直接from module import *的话是不会被导入的,但是如果在"_all_"中写明的话,是会被导入的,如下例子所示:
# test.py
__all__ = [
"_func",
"_module",
]
class _module():
def _func1():
print("func1")
def _func():
print("func")
# test_property.py
from module import *
_func()
m = _module()
具体可以参考:链接