序號(後面舉例用)
型別舉例
作用說明
1前單下劃線
_var
命名約定為私有屬性、方法,但不會強制執行(報錯),只是作為提示.
經常用於property語法中.
2後單下劃線
var_
避免與關鍵字衝突,又讓變數名具有可讀性.
舉例:加入想用type = "ok" ,但type是關鍵字,這時候就用type_ = "ok",增加了變數但可讀性,又不與關鍵字衝突.
3雙前下劃線
__var
雙下劃線的變數、方法不能直接被例項呼叫(網上很多把這當私有化使用)
用來避免子類覆蓋其內容(如果不理解,請看下面的示例**).
4雙前和雙后下劃線
__var__
1. 這是python的魔法,不要去呼叫這些變數和方法.
舉例:__init__ __len__ __new__,呼叫方式 len(var)
2. 或者你重寫這些內建方法(如果不理解,請看下面的示例**).
建議: 盡量避免用此方法命名自己的變數和方法,免得和將來python的內建方法衝突.
5單下劃線
_臨時變數,接收值後拋棄(功能和go的單下劃線一樣).
序號3的示例**:
1view code#序號3的**示例2#
此時類a 和 類b 都寫了__method方法,但因為用了雙下劃線,雖然b重寫了方法,但沒有生效。這就是雙下劃線的作用;
3class
a(object):
4def
__method
(self):
5print("
i'm a method in a")
6def
method(self):
7 self.__method()8
9class
b(a):
10def
__method
(self):
11print("
i'm a method in b")
1213
if__name__ == "
__main__":
14 a =a()
15a.method()
16 b =b()
17b.method()18#
執行結果:
19'''
20i'm a method in a
21i'm a method in a
22'''
232425#
雖然上面寫了__的乙個示例,但下面但**也很特別,請看下
26class
a(object):
27def
__method
(self):
28print("
i'm a method in a")
29def
method(self):
30 self.__method
()31
32class
b(a):
33def
__method
(self):
34print("
i'm a method in b")
35def
method(self):
36 self.__method
()37
38if
__name__ == "
__main__":
39 a =a()
40a.method()
41 b =b()
42b.method()43#
執行結果:
44'''
45i'm a method in a
46i'm a method in b
47'''
序號4的示例**:
1view code#序號4的**示例2#
重寫__var__的方法
3class
crazynumber(object):
4def
__init__
(self, n):
5 self.n =n
6def
__add__
(self, other):
7return self.n +other
8def
__sub__
(self, other):
9return self.n -other
10def
__str__
(self):
11return
str(self.n)
1213
if__name__ == "
__main__":
14 num = crazynumber(10)
15print(num) #
1016
print(num + 5) #
1517
print(num - 20) #
-10
1view codeclass
person(object):
2def
__init__
(self):
3 self.__name = "
wang
"4 self.__age__ = 3056
if__name__ == "
__main__":
7 p =person()
8print(p.__name) #報錯9
print(p.__age__) #
30
python下劃線變數的含義
不能用 from module import 匯入 類中的私有變數名 系統定義名字 結論 1 以單下劃線開頭的表示的是protected型別的變數。即保護型別只能允許其本身與子類進行訪問。若內部變數標示,如,當使用 from m import 時,不會將以乙個下劃線開頭的物件引入。2 雙下劃線的表示...
Python中下劃線含義詳解
格式例子作用及含義單下劃線開頭 var僅供內部使用,通常不會有python直譯器強制執行末尾單下劃線var 單個末尾下劃線 字尾 是乙個約定,用來避免與python關鍵字產生命名衝突。雙下劃線開頭 var當在類上下文使用時,觸發 名詞修飾 由python直譯器強制執行雙下劃線開頭和結尾 var py...
Python單下劃線和雙下劃線
python 用下劃線作為變數字首和字尾指定特殊變數。不能用 from moduleimport 匯入 系統定義名字 類中的私有變數名 核心風格 避免用下劃線作為變數名的開始。因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避免用下 劃線作為變數名的開始。一般來講,...