日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的for语句中i未被定义_python – PyLint:使用可能未定义的循环变量警告

發布時間:2023/12/19 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的for语句中i未被定义_python – PyLint:使用可能未定义的循环变量警告 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀this question后,我可以理解為什么可能輸出這個警告,但是當循環變量不能被定義時我有一個特定的情況……

for i in range(0, 2):

print i

print i

PyLinting以上我得到了

W: 4,6: Using possibly undefined loop variable 'i'

PyLint是不是很聰明,不會注意到內置的range()函數在這種情況下總會生成一個填充列表,因此我將始終為最后一個print語句設置?我可以理解它是否是一個定義不足的函數,因為PyLint不可能知道函數的作用……但在這種情況下它是一個眾所周知的函數,當然這種用法會很常見嗎?

如果是這樣,最好是在循環之前抑制警告或定義i(這看起來很浪費)?

解決方法:

這是因為你的范圍可能是空的,這取決于所涉及的中間執行步驟,或者它可能在代碼中被重新定義,如@tobias_k所指出的那樣(盡管這會引發額外的W:1,0:重新定義內置’范圍’ (重新定義的內置)),因此,變量i可能無法定義.

請注意,pylint根本不執行代碼,它只進行靜態分析,因此不會檢查范圍內的值.因此,當它看到在一個for block中定義的變量被重用時可能超出范圍時,它會抱怨.

考慮下面的示例,其中pylint顯示相同的警告,但一個運行,而另一個拋出異常:

W: 4, 6: Using possibly undefined loop variable 'i' (undefined-loop-variable)

示例(不工作):

$cat test.py

for i in range(0):

print i

print i

$python test.py

Traceback (most recent call last):

File "test.py", line 4, in

print i

NameError: name 'i' is not defined

示例(工作):

$cat test.py

for i in range(0, 2):

print i

print i

$python test.py

0

1

1

作為你的問題的答案,抑制警告是否更好,我的回答是否定的.如果您確實要禁止它,請確保在相關代碼塊之后重新啟用它.

標簽:python,pylint

來源: https://codeday.me/bug/20190728/1559280.html

總結

以上是生活随笔為你收集整理的python的for语句中i未被定义_python – PyLint:使用可能未定义的循环变量警告的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。