Python __all__变量
__all__
变量是一个特殊的变量,用于声明模块中哪些对象应该在使用from module import *
语句时被导入。
在Python中,from module import *
语句被认为是一种不好的做法,因为它污染了命名空间,并使代码可读性差。然而,在某些情况下,导入全部对象可能是方便的,但又希望限制导入的对象范围。
使用__all__
变量,您可以在模块中明确指定哪些对象应该被导入。例如,假设有一个名为module.py
的模块:
# module.py
def func1():
pass
def func2():
pass
def func3():
pass
__all__ = ['func1', 'func2']
在这个例子中,只有func1
和func2
将被导入。其他对象,如func3
,不会导入。
注意,__all__
是一个字符串列表,包含要导入的对象的名称。如果未在__all__
中指定对象,则不会导入。
此外,如果__all__
未定义,from module import *
将导入所有公共名称(公共名称是没有前导下划线的名称)。
总之,__all__
变量用于在模块中明确声明应该在from module import *
语句中被导入的对象。通过使用__all__
,您可以控制命名空间的清晰性和代码的可读性。