阅读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:使用可能未定义的循环变量警告相关推荐

  1. python的for语句中i未被定义_python 报错 类名没有被定义

    写了图片中一个类,脚本中声明对象没有报错,但是在console中声明时却报错类名不存在.很疑惑,望能解答,各位大佬补上代码:#!/usr/bin/envpython#-*-coding:utf-8-* ...

  2. python的for语句中i未被定义_独特的python循环语句

    1.局部变量 for i in range(5): print i, print i, 运行结果: 0 1 2 3 4 4 i是for语句里面的局部变量.但在python里面,在同一方法体内,定义了一 ...

  3. python语句中对象未被定义_python 形参没有被定义???感觉遇到鬼了。。。

    按照顺序,给没有key的参数赋值,意味着传递参数时,需按顺序匹配的参数必须出现在按key匹配的参数之前: 给按照key匹配的参数赋值: 将多余的按照顺序匹配但未匹配的参数值归入*name的tuple中 ...

  4. matlab 函数 未定义,matlab一直说我未定义函数或变量x怎么办?

    你有没有给x赋值?没有的话,函数g(x)没法调用参数x就出错了.例如试试:12x = 1:10;g(x)www.mh456.com防采集. 首先你这个函数写的是2113没问题,我感觉你的5261基础不 ...

  5. python名字未定义_Python名称错误:未定义名称“”

    我目前正在扩展python技能,通过编程一个程序生成的文本格式的地下城级别.我很困惑为什么我的"交叉"定义不起作用.下面是包含def的类:class Room: global x1 ...

  6. python将输入语句中的字母、空格、数字和其他字符分别输出

    python将输入语句中的字母.空格.数字和其他字符分别输出 str=input("输入任意字符") #列出四种类型的列表来盛放相应的字符 letters=[] spaces=[] ...

  7. MATLAB中未定义函数或变量”的问题

    MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件. 脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运 ...

  8. 关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法

    MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件. 脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运 ...

  9. 使用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 解 ...

最新文章

  1. Thrift架构与使用方法
  2. wps图表xy轴颠倒_还在嫌自己的图表丑?50+种可视化图表随你选
  3. android 信息添加附件功能,Android实现带附件的邮件发送功能
  4. Java微信公众号开发-外网映射工具配置 - 星星满天 - 博客园
  5. Array with Odd Sum(CF-1296A)
  6. 关于git远程版本库的一些问题之解决
  7. linux 复制指定类型,用Linux命令行实现删除和复制指定类型的文件
  8. 舍弃高通?谷歌推 Tensor 自研芯片
  9. 3Dshader之膨胀与收缩
  10. Bailian3180 整数减法【大数】
  11. js数组再倒数第二个添加元素_js 循环对象数组将元素逐个添加至新数组问题
  12. Qt实现图片的简单压缩
  13. KGB知识图谱凭借OCR文字识别突破文档解析局限
  14. 7-1 设计一个风扇Fan类 (20 分)JAVA PTA
  15. STRAIGHT_JOIN
  16. android使用google gcm接收push消息需要注意的地方
  17. jsp+sql毕业生招聘系统免费系统+论文
  18. Component属性
  19. Python基础班开班典礼
  20. 心电图心跳信号多分类预测-建模调参(四)

热门文章

  1. 关于 Angular view Query 的 id 选择器问题的单步调试
  2. SAP UI5 使用 CSS 的一些注意事项
  3. Angular 不同种类 Module 的介绍
  4. SAP Commerce Cloud WCMS 里的 home 页面和 SAP Spartacus Page API 返回的数据比较
  5. SAP fiori上直接连接到操作系统层面 然后进行相关操作的需求
  6. Angular自定义structural指令的实例化过程以及set方法的调用
  7. 介绍一个前端页面开发必备神器,chrome扩展,设备模拟器
  8. 给用过SAP CRM中间件的老哥老姐们讲讲SAP CPI
  9. how is central js retrieved from ABAP repository
  10. Several frontend roundtrip diagram - synchronous and Asynchronous