1. 程式人生 > >【python】雙下滑線,單下劃線

【python】雙下滑線,單下劃線

內置 -s 一個 tex error color OS spa ppi

1、_xxx 不能用於’from module import *’ 以單下劃線開頭的表示的是protected類型的變量。
即保護類型只能允許其本身與子類進行訪問。
2、__xxx 雙下劃線的表示的是私有類型的變量。只能是允許這個類本身進行訪問了。連子類也
不可以
3、__xxx___ 定義的是特列方法。像__init__之類的

實例
 1 >>> 
 2     class student(object):
 3     __name = 0
 4     _sex = male
 5 
 6 
 7 >>> student.__dict__
 8 mappingproxy({
__module__: __main__, _student__name: 0, _sex: male, __dict__: <attribute __dict__ of student objects>, __weakref__: <attribute __weakref__ of student objects>, __doc__: None}) 9 10 >>> student.__name 11 Traceback (most recent call last): 12 File "<pyshell#58>
", line 1, in <module> 13 student.__name 14 AttributeError: type object student has no attribute __name 15 16 >>> student._student__name 17 18 >>> student._sex 19 male

總結:我們聲明了一個學生類,分別用但下劃線和雙下劃線定義了一個成員,然後我們試圖訪問成員,我們發現:雙下劃線的成員無法直接訪問,通過__dict__我們看到,在類的內部,Python自動將__name 解釋成 _student__name,於是我們用 _student__name訪問,這次成功。然而,_name不受影響。所以: 兩頭下劃線:Python類內置成員專用,區別用戶自定義成員

【python】雙下滑線,單下劃線