Python 中 __all__ 的作用
1.测试文件foo.py
# -*- coding: utf-8 -*- # import sys # reload(sys) # sys.setdefaultencoding('gbk') __all__ = ['bar', 'baz'] waz = 5 bar = 10 def baz(): return 'baz'
2.引入上文件,创建run-foo.py
# -*- coding: utf-8 -*- # import sys # reload(sys) # sys.setdefaultencoding('gbk') from foo import * print bar print baz # The following will trigger an exception, as "waz" is not exported by the module # 下面的代码就会抛出异常,因为 "waz"并没有从模块中导出,因为 __all__ 没有定义 print waz
3.运行结果
4.把foo.py的“__all__ = ['bar', 'baz']” 注释,运行正常
它不仅在第一时间展现了模块的内容大纲,而且也更清晰的提供了外部访问接口。