__all__ 列表

__all__ 列表

__all__ 是模块或包中的一个列表变量,用来控制 from 模块名 import * 时哪些名称会被导入。

如果一个模块文件中有__all__ 变量,当使用from 模块名 import * 导入时,只能导入这个列表中的元素。

常见用法

__all__ = ['testA']

def testA():
	print('testA')

def testB():
	print('testB')
from my_module1 import *
testA()
testB() # 无法运行,因为没有被导入

模块与包的区别

工程实践中更推荐显式导入(from x import y),避免 import * 带来的命名冲突与可读性问题。