Python 中 __all__ 的作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘]” 注释,运行正常

技术分享

它不仅在第一时间展现了模块的内容大纲,而且也更清晰的提供了外部访问接口。

 

以上是关于Python 中 __all__ 的作用的主要内容,如果未能解决你的问题,请参考以下文章

python模块中的_all__属性的作用

python里的“__all__ ”作用

你不了解的Python冷知识__all__的作用/模块导入

__all__ 作用, 相当于导入*

模块中的__all__的作用

关于python 的__init__.py 以及 __all__ 的用法