1、_*** 不能用於』from module import *』 以單下劃線開頭的表示的是protected型別的變數。即保護型別只能允許其本身與子類進行訪問。
2、__*** 雙下劃線的表示的是私有型別的變數。只能是允許這個類本身進行訪問了。連子類也
不可以3、__***___ 定義的是特列方法。像__init__之類的
例項
1 >>>2class
student(object):
3__name =0
4 _*** = '
male'5
67 >>> student.__dict__
__module__
': '
__main__
', '
_student__name
': 0, '
_***
': '
male
', '
__dict__
': '
__dict__
' of '
student
' objects>, '
__weakref__
': '
__weakref__
' of '
student
' objects>, '
__doc__
': none})
910 >>> student.__name
11traceback (most recent call last):
12 file "
", line 1, in
13 student.__name
14 attributeerror: type object '
student
' has no attribute '
__name'15
16 >>>student._student__name
1718 >>>student._***19'
male
'
總結:我們宣告了乙個學生類,分別用但下劃線和雙下劃線定義了乙個成員,然後我們試圖訪問成員,我們發現:雙下劃線的成員無法直接訪問,通過__dict__我們看到,在類的內部,python自動將__name 解釋成 _student__name,於是我們用 _student__name訪問,這次成功。然而,_name不受影響。所以: 兩頭下劃線:python類內建成員專用,區別使用者自定義成員
posted @
2018-06-23 12:28
不停地走 閱讀(
...)
編輯收藏
Python單下劃線和雙下劃線
python 用下劃線作為變數字首和字尾指定特殊變數。不能用 from moduleimport 匯入 系統定義名字 類中的私有變數名 核心風格 避免用下劃線作為變數名的開始。因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避免用下 劃線作為變數名的開始。一般來講,...
Python 單下劃線和雙下劃線解析
單下劃線 單下劃線開始的成員變數叫做保護變數,意思是只有類物件和子類物件自己能訪問到這些變數 雙下劃線 開始的是私有成員,意思是只有類物件自己能訪問,連子類物件也不能訪問到這個資料。如下列所示 以單下劃線開頭 foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用 from impo...
Python中單下劃線和雙下劃線
python中存在一些特殊的方法,有些方法以雙下劃線 開頭和結尾,它們是python的魔法函式,比如 init 和 str 等等。不用要這種方式命名自己的變數或者函式。class a def init self,text self.text text def str self return self...