Python 在for循环外部更改变量
我正在编写一个程序,其中我正在使用for循环访问列表中的一个对象。我希望能够从for循环外部更改for循环内部的变量。下面的代码片段:Python 在for循环外部更改变量,python,pycharm,Python,Pycharm,我正在编写一个程序,其中我正在使用for循环访问列表中的一个对象。我希望能够从for循环外部更改for循环内部的变量。下面的代码片段: member_found = False # default value for member in self._members: if member_id == member.get_account_ID(): member_found = True 在PyCharm中,我收到一个通知说“未使用局部变量'member_foun
member_found = False # default value
for member in self._members:
if member_id == member.get_account_ID():
member_found = True
在PyCharm中,我收到一个通知说“未使用局部变量'member_found'值。”当我运行此代码时,它似乎不会产生任何错误,但我希望确保for循环外的变量实际正在被更改
我总是可以将默认值设置为空列表并附加列表,但如果可能的话,我更愿意使用布尔值。PyCharm只是警告您,正如您自己所说,您不会得到错误,也不会以您的方式更改值。尝试在for循环后打印该值,以确保其实际已更改。正如Phix所述,该通知只是警告您不要在for循环后使用变量。Python的作用域规则使您共享的代码能够完全执行您试图执行的操作。该变量将被更新。我们可以简单地说明这一点:
x = 0
for i in range(5):
x = i
print(x)
4
其他人已经解释了你收到的警告,所以我没有什么要补充的 您是否在分配后实际使用了
member\u found
?是的,我在分配后的代码是:如果未找到member\u found:raise InvalidCheckoutError“但我想确保for循环外的变量实际上正在被更改。”在循环后打印它您知道,您可以通过运行代码自己简单地回答这个问题,但是是的,如果您的if
条件为真,那么member\u found
将设置为true
。注意,Python没有块作用域。当一个简单的打印将回答您的问题时,您为什么要问我们?我们希望你在这里张贴之前做这项工作。