之前在PyCharm

时间:2016-01-22 23:09:40

标签: python python-3.x pycharm

在编写了这段代码以分别对数据库执行查询之后, PyCharm 突出显示了带有给定注释的第二个 i

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

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

重新宣布'我'上面定义的没有用法。

是否会出现任何错误?我应该以其他方式实现吗?

1 个答案:

答案 0 :(得分:1)

与C ++ / Java相比,不同的范围会发生什么。你希望i之间不存在forIt'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 3中却没有。