【速查表】Python下劃線的含義,熟悉又陌生的東西!
1. 單前導下劃線 _var
當涉及到變數和方法名稱時,單個下劃線字首有一個約定俗成的含義。 它是對程式員的一個提示 - 意味著Python社群一致認為它應該是什麼意思,但程式的行為不受影響。下劃線字首的含義是告知其他程式設計師:以單個下劃線開頭的變數或方法僅供內部使用。 該約定在PEP 8中有定義。
2. 單末尾下劃線 var_
有時候,一個變數的最合適的名稱已經被一個關鍵字所佔用。 因此,像class或def這樣的名稱不能用作Python中的變數名稱。 在這種情況下,你可以附加一個下劃線來解決命名衝突。
3. 雙前導下劃線 __var
雙下劃線字首會導致Python直譯器重寫屬性名稱,以避免子類中的命名衝突。這也叫做名稱修飾(name mangling) - 直譯器更改變數的名稱,以便在類被擴充套件的時候不容易產生衝突。
4. 雙前導和雙末尾下劃線 _var_
也許令人驚訝的是,如果一個名字同時以雙下劃線開始和結束,則不會應用名稱修飾。 由雙下劃線字首和字尾包圍的變數不會被Python直譯器修改。但是,Python保留了有雙前導和雙末尾下劃線的名稱,用於特殊用途。 這樣的例子有,__init__物件建構函式,或__call__ --- 它使得一個物件可以被呼叫。這些dunder方法通常被稱為神奇方法 - 但Python社群中的許多人都不喜歡這種方法。最好避免在自己的程式中使用以雙下劃線(“dunders”)開頭和結尾的名稱,以避免與將來Python語言的變化產生衝突。
5.單下劃線 _
按照習慣,有時候單個獨立下劃線是用作一個名字,來表示某個變數是臨時的或無關緊要的。你也可以在拆分(unpacking)表示式中將單個下劃線用作“不關心的”變數,以忽略特定的值。 同樣,這個含義只是“依照約定”,並不會在Python直譯器中觸發特殊的行為。 單個下劃線僅僅是一個有效的變數名稱,會有這個用途而已。
以下是一個簡短的小結,羅列了五種常用的Python下劃線模式的含義:
原文釋出時間為:2018-09-13本文來自雲棲社群合作伙伴“ofollow,noindex">機器學習演算法與Python學習 ”,瞭解相關資訊可以關注“機器學習演算法與Python學習 ”。