Python重新声明了之前在PyCharm中定义的变量

2024-10-01 15:41:02 发布

您现在位置:Python中文网/ 问答频道 /正文

在编写了这段代码分别对数据库执行查询之后,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())

Redeclared 'i' defined above without usage.

会不会有什么差错?我应该用其他方式实现吗?在


Tags: 代码inadd数据库forrangeproccompany
1条回答
网友
1楼 · 发布于 2024-10-01 15:41:02
<> >发生的是不同的范围,如C++,java。在这里,您可以预期i不存在于fors之间。It'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的输出:

^{pr2}$

你得到警告的原因可能是,这种事情可能会导致脑残。间接的解决方案包含在链接页面中;您可以考虑将您的for封装在一个函数中,如果这种情况发生两次以上,这可能对可读性特别好。在

list comprehensions中也有一个类似的意外作用域的情况,但在python3中不是这样。在

相关问题 更多 >

    热门问题