Python __all__的做用

1.问题描述

在研读python model 源码时,会看到一些*.py文件或者__init__.py 中会使用 __all__ 。对于__all__ 具体所其的做用是什么?在此对查取结果进行总结下。python

2.总结

(1) 在__init__.py文件中函数

表示形式:spa

__all__=["module_a","module_b"]

在使用 from package_name import * 时 , 表示import 该package 中的 两个module及 两个module相关的类、方法等。code

(2) 在普通的*.py中源码

表示形式:it

__all__=["class_name","function_name"]

在使用 from module_name import * 时,表示import 该module中的__all__中所列出的。io

使用注意事项:function

(1) 在普通的*.py中, 使用__all__ 时,可使用__all__列出的 类、函数、变量等,不使用__all__时会使用module中的全部不如下划线开头的成员。class

(2)__all__只能影响到 from <package/module> import * 这种import 方式, 对于from <package/module>  import  <member>的 import 方式没有影响。import

(3) __all__ 的数据类型:List or Tuple (不肯定, 待验证其余)

相关文章
相关标签/搜索