如果我需要一個for循環蟒蛇當你不需要Python中的索引時,你如何做一個For循環?
for i in range(1,42):
print "spam"
但不要使用「我」的東西pylint的抱怨未使用的變量。我應該如何處理?我知道你可以這樣做:
for dummy_index in range(1,42):
print "spam"
但這樣做對我來說似乎很奇怪,有沒有更好的方法?
我在Python中很新,所以原諒我,如果我失去了明顯的東西。
如果我需要一個for循環蟒蛇當你不需要Python中的索引時,你如何做一個For循環?
for i in range(1,42):
print "spam"
但不要使用「我」的東西pylint的抱怨未使用的變量。我應該如何處理?我知道你可以這樣做:
for dummy_index in range(1,42):
print "spam"
但這樣做對我來說似乎很奇怪,有沒有更好的方法?
我在Python中很新,所以原諒我,如果我失去了明顯的東西。
沒有「自然」的方式循環ň次無Python中的計數器變量,你不應該訴諸醜陋的黑客只是沉默的代碼分析工具。
在你的情況我建議下列之一:
i
變量,是通常只用於for
循環。_
(它比dummy
少分心)未使用的變量for _ in range(1,42):
print "spam"
認爲它可能會識別它,因爲它是傳統上使用的,當你沒有使用變量。 – jamylak 2012-04-12 10:55:31
+1:使用默認設置,PyLint不會抱怨以「dummy」或「_」開頭的未使用變量。使用「\ _」來存儲不需要的值在Python中是很常見的(例如'foo,_ = func_returning_tuple()'說了這麼多,我寧願'_i'比普通的'_'。 – 2012-04-12 10:57:01
注意:當使用'_'同樣使用['gettext'](http://docs.python.org/library/gettext.html)庫(或者認爲將來可能會使用它)會導致問題.Gettext使用'_'作爲i18n翻譯函數('_(「翻譯這個文本」)'),但是在上面的循環'_'會突然變爲41,而下一次調用會引發異常。 – 2012-04-12 11:09:30
--dummy-variables-rgx= A regular expression matching names used for dummy variables (i.e. not used). [current: _|dummy]
換句話說,如果變量的名稱以下劃線開頭,或用字母dummy
,pylint
不會抱怨變量不被使用:
for dummy in range(1, 42):
print "spam"
我給了我的問題解決方案,即時通訊詢問是否有辦法做到這一點,而沒有聲明變量 – Jacxel 2012-04-12 11:14:39
通常你可以解決它,就像你的情況一樣:
>>> print "spam\n"*len(range(1,42))
但是可能OP想要做更復雜的事情,這是一個簡單的例子... – 2012-04-12 11:00:10
@PaulHiemstra什麼我的意思是,如果沒有未使用的變量,可能會做更復雜的事情。我無法想象在不使用虛擬變量 – luke14free 2012-04-12 11:02:34
的情況下無法解決的設置,但可能存在這樣的解決方法,即時嘗試儘可能少地更改代碼。我正致力於將現有的框架升級到pep8,並希望避免在不必要的地方進行重大更改。 – Jacxel 2012-04-12 11:16:21
3個簡單的原因
for
循環中的計數器變量。index[1]
到index[2]
只需加上if index[1]
就完成了。 return index[]+1
。for
循環,並且在長程序中效率不高。
這是非常主觀的。使用前綴'_'或'dummy',或者決定不同的方案,並相應地設置PyLint的'--dummy-variables-rgx'選項(例如'unused_')。 – 2012-04-12 11:00:07
實際上,由於使用了「i」,並且它是'for'語句中語法的必要部分,所以周圍唯一的_dummy_事物是pylint本身。我建議把它作爲pylint項目中的錯誤報告。 – jsbueno 2012-04-12 13:32:50