[英]Python does not warn about variable re-declaration
我花了整整一天的時間來追蹤這個錯誤:
for idx, val in enumerate(some_list): for idx, otherval in enumerate(another_list): #the idx for the outer loop is overwritten #blah blah
來自強類型語言的背景,對此我感到很痛苦。 在強類型語言中,我將得到有關變量重新聲明的錯誤。 我不知道為什么解釋器不對此發出警告,也不解釋其背后的設計決定。 我的意思是,這顯然是一個錯誤,此結構的合法使用可能是什么? 是否有啟用這種檢查的選項? 謝謝。
無法啟用這種檢查。 通常,我建議使用pylint
工具,但是pylint
(我最喜歡的)似乎沒有注意到這一點,而pychecker
也沒有pychecker
。
至於基本原理:您想允許類似
a = 1
a = 2
好吧那怎么樣
a = ""
a = 1
好吧,這也許也可以。 現在呢
a = 1
for a in range(5):
你看到問題了嗎? 尚不清楚應該是什么錯誤/警告,什么不應該。
(我承認我希望這件事被pychecker
類的工具pychecker
,我對此感到有些失望。)
這就是Python的工作方式,您可以自由地重新定義變量。 如果您希望它的行為像靜態類型的語言,那么您只會感到失望。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.