2016-08-23 187 views
7

一個變量名後,我破譯別人的代碼,我看到以下內容:下劃線在Python

def get_set_string(set_): 
    if PY3: 
     return str(set_) 
    else: 
     return str(set_) 

是否下劃線的變量之後意味着什麼或者這只是變量名的一部分,意味着什麼?

+0

這只是名稱的一部分。你需要問作者。 –

+5

這是爲了區別它與'set',內置的集合類型,以避免名稱的陰影 - [*''single_trailing_underscore_':常規使用,以避免與Python關鍵字衝突*](https://www.python .ORG的/ dev/PEPS/PEP-0008 /#描述命名的樣式)。 – jonrsharpe

+0

謝謝你澄清這一點 – nanachan

回答

9

沒有語義與尾部下劃線相關聯。據PEP 8,風格指南Python中,用戶被敦促使用尾隨爲了強調不與Python的關鍵字和/或Python的內置插件衝突:

single_trailing_underscore_:使用約定,以避免與Python關鍵詞的衝突,例如

Tkinter.Toplevel(master, class_='ClassName')

使用set_意味着,內置名稱集,即set,不會得到陰影和失去函數調用期間其已知的參考。

4

這意味着什麼。我相信寫這個的人想要一個指定集合的​​變量名,但set是Python中的一個類型(它創建了一個集合),所以他添加了下劃線。