python - “UnboundLocalError:分配前引用的局部变量'isrunning'” Idk 为什么
问题描述
当我运行我的 Python 程序时,它说
“UnboundLocalError:分配前引用的局部变量‘isrunning’”。我
不知道为什么会这样。
我什至不知道从哪里开始解决这个问题。
isrunning = True
def redrawgame():
win.blit(bg, (bgX, 0)) # draws our first bg image
win.blit(bg, (bgX2, 0))
if isrunning == True:
win.blit(Run[imagerun],(x, y))
isrunning
我在使用它之前定义了它redrawgame()
,所以 IDK 为什么会发生这种情况。请帮忙。我只是想让这个错误消失。
解决方案
当您对范围内的变量进行赋值时,该变量将成为该范围内的本地变量。
我假设您对 .isrunning
范围内的变量进行了赋值redrawgame
。例如:
def redrawgame():
# [...]
isrunning = False
由于isrunning
在 的范围内是局部的redrawgame
,因此该语句
if isrunning == True:
尝试读取此局部变量,此时尚未定义。这会导致错误:
“UnboundLocalError:分配前引用的局部变量‘isrunning’”。
另请参阅为什么当变量具有值时我会收到 UnboundLocalError?
要在函数范围内写入全局命名空间中的变量,您必须使用以下global
语句:
isrunning = True
def redrawgame():
global isrunning
win.blit(bg, (bgX, 0)) # draws our first bg image
win.blit(bg, (bgX2, 0))
if isrunning == True:
win.blit(Run[imagerun],(x, y))
# [...]
isrunning = False
现在该值是从全局命名空间中的变量中读取的,并且不再有同名的局部变量。
推荐阅读
- javascript - D3中的svg亮度过滤器
- javascript - HTML 将 chrome 中的工具提示翻倍
- c++ - 访问冲突读取位置(关键问题)
- postman - 在脚本中更改 URL
- javascript - GETTING ERROR:警告:道具类型失败:提供给“Form”的道具“children”无效,需要一个ReactNode
- java - 调用方法时未按预期给出结果
- flask - 如何在 Flask 中引用图像文件位置?(初学者)
- machine-learning - 深度学习 + ML + CV > Requirements.txt 文件
- php - 有什么方法可以将 $domain 变量默认传递给 route() 方法
- postgresql - 在现有数据库上启用加密 - AWS RDS Postgresql