2016-01-22 55 views
0

之前定義variabe寫過這一段代碼分別執行查詢數據庫後,PyCharm強調第二與給定的評論。的Python重新聲明在PyCharm

for i in range(records): 
    filler.apply_proc('AddCompany', gen_add_company()) 

for i in range(records): 
    filler.apply_proc('AddConference', gen_add_conference()) 

重新聲明的 'i' 如上所定義的無使用。

它可能是任何錯誤的主題?我應該以其他方式實現嗎?

+2

使用'_'代替我用於拋棄變量...但它不是一個錯誤...它的罰款... pycharm只是警告你 –

+0

@JoranBeasley,你爲什麼要使用_的任何原因我的?只是好奇:) – n1c9

+0

它的公約... –

回答

1

會發生什麼是不同的範圍設定,比如C++/Java。在for之間,您預計i不存在。 It's not the case.

你可以看到,在工作中,假設記錄== 10:

for i in range(records): 
    filler.apply_proc('AddCompany', gen_add_company()) 

print("i: %d" % i) 

for i in range(records): 
    filler.apply_proc('AddConference', gen_add_conference()) 

你會得到你的輸出 - 假設從for無輸出:

i: 9 

你之所以「得到警告可能是這種事情可能導致大腦開裂的錯誤。間接解決方案包含在鏈接頁面中;你可以考慮的是將for包裝在一個函數中,如果這種情況發生的次數超過兩次,這可能特別有利於可讀性。

list comprehensions中也有一個範圍驚喜的類似案例,但不是在Python中詢問的。