python下劃線 含義

2022-06-30 10:09:13 字數 2930 閱讀 2113

序號(後面舉例用)

型別舉例

作用說明

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的示例**:

1

#序號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'''

view code

序號4的示例**:

1

#序號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

view code

1

class

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

view code

python下劃線變數的含義

不能用 from module import 匯入 類中的私有變數名 系統定義名字 結論 1 以單下劃線開頭的表示的是protected型別的變數。即保護型別只能允許其本身與子類進行訪問。若內部變數標示,如,當使用 from m import 時,不會將以乙個下劃線開頭的物件引入。2 雙下劃線的表示...

Python中下劃線含義詳解

格式例子作用及含義單下劃線開頭 var僅供內部使用,通常不會有python直譯器強制執行末尾單下劃線var 單個末尾下劃線 字尾 是乙個約定,用來避免與python關鍵字產生命名衝突。雙下劃線開頭 var當在類上下文使用時,觸發 名詞修飾 由python直譯器強制執行雙下劃線開頭和結尾 var py...

Python單下劃線和雙下劃線

python 用下劃線作為變數字首和字尾指定特殊變數。不能用 from moduleimport 匯入 系統定義名字 類中的私有變數名 核心風格 避免用下劃線作為變數名的開始。因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避免用下 劃線作為變數名的開始。一般來講,...