python類,專欄總目錄:
1、python命名約定
1)所謂”內部(Internal)”表示僅模塊內可用, 或者, 在類內是保護或私有的;
2)用單下劃線(_)開頭表示模塊變量或函數是protected的(使用import * from時不會包含);
3)用雙下劃線(__)開頭的實例變量或方法表示類內私有;
4)將相關的類和頂級函數放在同一個模塊裏,沒必要限制一個類一個模塊;
5)對類名使用大寫字母開頭的單詞(如CapWords, 即Pascal風格), 但是模塊名應該用小寫加下劃線的方式(如lower_with_under.py)。
6)類以C開頭,枚舉以E開頭。
2、__all__
在模塊(*.py)中使用意爲導出__all__列表裏的類、函數、變量等成員,否則將導出模塊中所有不以下劃線開頭(私有)的成員,在模塊中使用__all__屬性可避免在相互引用時的命名衝突。
只有在執行語句 from module import * 時,__all__屬性纔會起作用。此時所有枚舉的成員被import,而其他成員被私有化。
主要作用:在第一時間展現了模塊的內容大綱,而且也更清晰的提供了外部訪問接口。
2.1、在模塊(*.py)中使用意爲導出__all__列表裏的類、函數、變量等成員
modualA.py
#
__all__=["fun1","class1"]
...
#end file modualA.py
使用:
from modualA import *
導入模塊modualA裏的所有成員(如果定義了__all__那麼就導出列表中的所有,否則默認導出不以下劃線開頭的所有成員)
2.2、在包(假設pkgA,pkgA是一個文件夾)的__init__.py中意爲導出包裏的模塊
# pkgA/__init__.py
from modualA import class1,class2
from modualB import fun1,class3
....
使用:
from pkgA import *
以上語句即執行了pkgA下的__init__.py,導入兩個模塊,和這兩模塊下的函數和類。
3.3、私有變量導出
_開頭表示保護變量,__開頭表示私有變量
私有屬性默認是無法導出的,可以通過__all__加入該變量進行導出。
參考文章
1、python快速生成註釋文檔的方法
https://www.cnblogs.com/cookie1026/p/6093188.html
2、python裏__all__ 屬性分別於模塊和包之中的用法
http://blog.csdn.net/nivana999/article/details/39620673
http://blog.csdn.net/sxingming/article/details/52903377