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:使用可能未定义的循环变量警告相关推荐
- python的for语句中i未被定义_python 报错 类名没有被定义
写了图片中一个类,脚本中声明对象没有报错,但是在console中声明时却报错类名不存在.很疑惑,望能解答,各位大佬补上代码:#!/usr/bin/envpython#-*-coding:utf-8-* ...
- python的for语句中i未被定义_独特的python循环语句
1.局部变量 for i in range(5): print i, print i, 运行结果: 0 1 2 3 4 4 i是for语句里面的局部变量.但在python里面,在同一方法体内,定义了一 ...
- python语句中对象未被定义_python 形参没有被定义???感觉遇到鬼了。。。
按照顺序,给没有key的参数赋值,意味着传递参数时,需按顺序匹配的参数必须出现在按key匹配的参数之前: 给按照key匹配的参数赋值: 将多余的按照顺序匹配但未匹配的参数值归入*name的tuple中 ...
- matlab 函数 未定义,matlab一直说我未定义函数或变量x怎么办?
你有没有给x赋值?没有的话,函数g(x)没法调用参数x就出错了.例如试试:12x = 1:10;g(x)www.mh456.com防采集. 首先你这个函数写的是2113没问题,我感觉你的5261基础不 ...
- python名字未定义_Python名称错误:未定义名称“”
我目前正在扩展python技能,通过编程一个程序生成的文本格式的地下城级别.我很困惑为什么我的"交叉"定义不起作用.下面是包含def的类:class Room: global x1 ...
- python将输入语句中的字母、空格、数字和其他字符分别输出
python将输入语句中的字母.空格.数字和其他字符分别输出 str=input("输入任意字符") #列出四种类型的列表来盛放相应的字符 letters=[] spaces=[] ...
- MATLAB中未定义函数或变量”的问题
MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件. 脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运 ...
- 关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法
MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件. 脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运 ...
- 使用gcc编译报错:/tmp/ccoLTk4o.o:在函数‘main’中: main1.c:(.text+0x9c):对‘pirnt1’未定义的引用 collect2: 错误:ld 返回 1
报错 使用gcc编译报错:/tmp/ccoLTk4o.o:在函数'main'中: main1.c:(.text+0x9c):对'pirnt1'未定义的引用 collect2: 错误:ld 返回 1 解 ...
最新文章
- Thrift架构与使用方法
- wps图表xy轴颠倒_还在嫌自己的图表丑?50+种可视化图表随你选
- android 信息添加附件功能,Android实现带附件的邮件发送功能
- Java微信公众号开发-外网映射工具配置 - 星星满天 - 博客园
- Array with Odd Sum(CF-1296A)
- 关于git远程版本库的一些问题之解决
- linux 复制指定类型,用Linux命令行实现删除和复制指定类型的文件
- 舍弃高通?谷歌推 Tensor 自研芯片
- 3Dshader之膨胀与收缩
- Bailian3180 整数减法【大数】
- js数组再倒数第二个添加元素_js 循环对象数组将元素逐个添加至新数组问题
- Qt实现图片的简单压缩
- KGB知识图谱凭借OCR文字识别突破文档解析局限
- 7-1 设计一个风扇Fan类 (20 分)JAVA PTA
- STRAIGHT_JOIN
- android使用google gcm接收push消息需要注意的地方
- jsp+sql毕业生招聘系统免费系统+论文
- Component属性
- Python基础班开班典礼
- 心电图心跳信号多分类预测-建模调参(四)
热门文章
- 关于 Angular view Query 的 id 选择器问题的单步调试
- SAP UI5 使用 CSS 的一些注意事项
- Angular 不同种类 Module 的介绍
- SAP Commerce Cloud WCMS 里的 home 页面和 SAP Spartacus Page API 返回的数据比较
- SAP fiori上直接连接到操作系统层面 然后进行相关操作的需求
- Angular自定义structural指令的实例化过程以及set方法的调用
- 介绍一个前端页面开发必备神器,chrome扩展,设备模拟器
- 给用过SAP CRM中间件的老哥老姐们讲讲SAP CPI
- how is central js retrieved from ABAP repository
- Several frontend roundtrip diagram - synchronous and Asynchronous