python 里面的單下划線與雙下划線的區別
Python 用下划線作為變量前綴和后綴指定特殊變量。
_xxx 不能用'from moduleimport *'導入
__xxx__ 系統定義名字
__xxx 類中的私有變量名
核心風格:避免用下划線作為變量名的開始。
因為下划線對解釋器有特殊的意義,而且是內建標識符所使用的符號,我們建議程序員避免用下
划線作為變量名的開始。一般來講,變量名_xxx被看作是“私有 的”,在模塊或類外不可以使用。
當變量是私有的時候,用_xxx 來表示變量是很好的習慣。因為變量名__xxx__對Python 來說
有特殊含義,對於普通的變量應當避免這種命名風格。
"單下划線" 開始的成員變量叫做保護變量,意思是只有類對象和子類對象自己能訪問到這些變量;
"雙下划線" 開始的是私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數
據。
以單下划線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不
能用“from xxx import *”而導入;以雙下划線開頭的(__foo)代表類的私有成員;以雙下划
線開頭和結尾的(__foo__)代表python里特殊方法專用的標識,如 __init__()代表類的構
造函數。
結論:
1、_xxx 不能用於’from module import *’ 以單下划線開頭的表示的是protected類型的變量。
即保護類型只能允許其本身與子類進行訪問。
2、__xxx 雙下划線的表示的是私有類型的變量。只能是允許這個類本身進行訪問了。連子類也
不可以
3、__xxx___ 定義的是特列方法。像__init__之類的