我不能提供我的实际代码(因为它超过一万行),但我可以给出一个简短的总结。在这里,我稍后给出症状:
def calculate_stuffs():
*global lots of stuff*
*some other stuff*
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_BACKSLASH:
try:
exec easygui.enterbox('Type command:')
except:
print "Command crashed, or Easygui is not installed."
*a lot of other stuff*
以下是它工作/失败的一些例子:
如果我键入的命令无效,它将返回相应的 信息
如果我让它运行一个函数,它就会工作
如果我告诉它读取一个变量(例如打印一个变量),它就会工作
如果我让它写一个变量,它什么也做不了。它 甚至都没有给出崩溃的信息。我把x作为一个全局变量, 如果我说“x+=5”这样的话,它仍然没有任何作用
我很肯定这是一个范围的问题,但我不确定
如果你需要我提供更多的代码,尽管问。当你找到答案时,请解释它为什么起作用。谢谢你
您还需要在
exec
语句中使用global
,因为exec
有自己的作用域,就像函数一样:将打印:
如果在
global x
语句中没有exec
,它将打印:相关问题 更多 >
编程相关推荐