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 (不肯定, 待驗證其餘)

相關文章
相關標籤/搜索