1. 程式人生 > >python單下劃線與雙下劃線的區別

python單下劃線與雙下劃線的區別

word 好的 特殊變量 ase 私有 前綴和 意思 解釋 __init__

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__之類的

python單下劃線與雙下劃線的區別