簡體   English   中英

Python中不同類型的變量名稱相同

[英]Same variable name for different types in Python

我發現自己做了很多類似的事情:

msg = ['This', 'is', 'a', 'message']  # (or built up programmatically)
msg = ' '.join(msg)

這會將變量msg的類型從list更改為str ,這是像Python這樣的動態類型化語言所允許的。 不過,這是個好主意嗎? 這里的分配緊密並沒有太多的混亂,但是如果在寬間隔的代碼位中以兩種不同的形式使用msg怎么辦?

但是,如果在寬間隔的代碼位中以兩種不同的形式使用msg怎么辦?

你已經砸到頭了。 使用相同的引用名稱只會給程序員增加一件事,以便程序員在掃描代碼時要注意-僅出於這個原因,最好使用其他名稱。

我個人使用類似:

msg = ['This', 'is', 'a', 'message']
msg_str = ' '.join(msg)

我的建議是,您只需在代碼中只寫您實際打算做的事情,而別無其他。 如果您考慮您的示例,它實際上是做什么的?

第一行帶有一個值(特別是一個列表),並在其上加上標簽,因為正如注釋中提到的Sylvain Leroux所說的,這實際上是一個變量。 然后,在第二行中,使用該值創建另一個值(這次是一個字符串),然后-這是重要的部分-將標簽從第一個值中刪除,然后將其放在第二個值上。

這真的是您想做的嗎? 基本上,第一個值(列表)是您真正需要的最終值的一次性中間步驟,並在完成其工作時被丟棄。 在這種情況下,代碼可以很容易地寫成:

msg = ' '.join(['This', 'is', 'a', 'message'])

另一方面,如果您實際上需要兩個不同的值(一個基於另一個值),則在代碼的其他地方獨立使用,則一定要創建一個不同的變量名,如馬丁·科內西尼(Martin Konecny)所建議的那樣。

這里重要的是要記住,變量實際上是應用於不同值的標簽,並且可以從一個值移開並分配給另一個值。 實際上,用幾個不同的“標簽”來“標記”一個值是很標准的。 即為多個變量分配相同的值。 這里重要的是值,而不是變量,變量只是名稱空間中的標簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM