Python中下划線的5種含義


單前導下划線 _var

當涉及到變量和方法名稱時,單個下划線前綴有一個約定俗成的含義。 它是對程序員的一個提示 - 意味着Python社區一致認為它應該是什么意思,但程序的行為不受影響。

下划線前綴的含義是告知其他程序員:以單個下划線開頭的變量或方法僅供內部使用。 該約定在PEP 8中有定義。

單末尾下划線 var_

有時候,一個變量的最合適的名稱已經被一個關鍵字所占用。 因此,像class或def這樣的名稱不能用作Python中的變量名稱。 在這種情況下,你可以附加一個下划線來解決命名沖突。總之,單個末尾下划線(后綴)是一個約定,用來避免與Python關鍵字產生命名沖突。 PEP 8解釋了這個約定。

雙前導下划線 __var

到目前為止,我們所涉及的所有命名模式的含義,來自於已達成共識的約定。 而對於以雙下划線開頭的Python類的屬性(包括變量和方法),情況就有點不同了。

雙下划線前綴會導致Python解釋器重寫屬性名稱,以避免子類中的命名沖突。

這也叫做名稱修飾(name mangling) - 解釋器更改變量的名稱(例如:class名為Test, 變量名為__a,那么__a會被Python解釋器重寫屬性名為_Test__a),以便在類被擴展的時候不容易產生沖突。名稱修飾會影響在一個類的上下文中,以兩個下划線字符("dunders")開頭的所有名稱。

雙前導和雙末尾下划線 var

如果一個名字同時以雙下划線開始和結束,則不會應用名稱修飾。 由雙下划線前綴和后綴包圍的變量不會被Python解釋器修改。

單下划線 _

按照習慣,有時候單個獨立下划線是用作一個名字,來表示某個變量是臨時的或無關緊要的。你也可以在拆分(unpacking)表達式中將單個下划線用作“不關心的”變量,以忽略特定的值。 同樣,這個含義只是“依照約定”,並不會在Python解釋器中觸發特殊的行為。 單個下划線僅僅是一個有效的變量名稱,會有這個用途而已。

除了用作臨時變量之外,“_”是大多數Python REPL中的一個特殊變量,它表示由解釋器評估的最近一個表達式的結果。

Python下划線命名模式 - 小結

evernotecid://9326179B-5200-4478-B32E-B919B94B243C/appyinxiangcom/21231346/ENResource/p4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM