1. 有效的Python標識符規則:
(1)長度任意長;
(2)標識符不能與關鍵字同名;
(3)在2.x版本的Python中,標識符以ASCII的字母或下划線開始,后面可以接字母、數字、下划線;
在3.x的Python中,標識符ASCII字母、下划線以及大多數非英文語言的字母,只要是Unicode編碼的字母都可以充當引導字符,后續字符可以是任意引導符,或任意非空格字符,包括Unicode編碼中認為是數字的任意字符。(因此可以使用阿拉伯語、中文、日語或俄語字符或Unicode字符集支持的任意其他語言中的字符進行命名)
2. 約定:
(1)不要使用Python預定義的標識符名,因此要避免使用NotImplemented與Eliiipsis等名字,這些在未來有可能被Python的新版本使用到;
(2)不要使用Python內置函數名或內置數據類型或異常名作為標識符名;
(3)關於下划線的約定,名字的開頭和結尾都使用下划線的情況應該避免,因為Python中大量采用這種名字定義了各種特殊方法和變量;在有些情況,以一個或兩個下划線引導的名稱,但是沒有使用兩個下划線結尾的應該特殊對待。
3.Python專用下划線標識符
首先,建議盡量避免使用下划線作為標識符的開始
(1)單下划線開頭的變量名
模塊級私有,這個被常用於模塊中,
在一個模塊中以單下划線開頭的變量和函數被默認當作內部函數,
如果使用 from a_module import * 導入時,這部分變量和函數不會被導入,除非除非模塊或包中的“__all__”列表顯式地包含了它們。不過值得注意的是,如果使用 import a_module 這樣導入模塊,仍然可以用 a_module._some_var 這樣的形式訪問到這樣的對象。
在類中,“單下划線” 開始的成員變量叫做保護變量,意思是
只有類對象和子類對象自己能訪問到這些變量;
使用單下划線私有變量,是程序員的一個很好的習慣
(2)雙下划線開頭的變量名(不是以雙下划線結尾)
類的私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據。
即如果有一 Test 類里有一成員 __x,那么 dir(Test) 時會看到 _Test__x 而非 __x。這是為了避免該成員的名稱與子類中的名稱沖突。但要注意這要求該名稱末尾沒有下划線。
(3)雙下划線開頭,雙下划線結尾的變量名
python里特殊方法專用的標識,如 __init__()代表類的構造函數。
(4)單下划線_(了解即可)
通常情況下,會在以下3種場景中使用:
a) 在解釋器中:在這種情況下,“_”代表交互式解釋器會話中上一條執行的語句的結果。
b)作為一個名稱: “_”作為臨時性的名稱使用。這樣,當其他人閱讀你的代碼時將會知道,你分配了一個特定的名稱,但是並不會在后面再次用到該名稱。例如,下面的例子中,你可能對循環計數中的實際值並不感興趣,此時就可以使用“_”;
c)國際化:也許你也曾看到”_“會被作為一個函數來使用。這種情況下,它通常用於實現國際化和本地化字符串之間翻譯查找的函數名稱,這似乎源自並遵循相應的C約定。