一个(可能的)Python范围问题

2022-01-19 00:37:48 发布

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

我不能提供我的实际代码(因为它超过一万行),但我可以给出一个简短的总结。在这里,我稍后给出症状:

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”这样的话,它仍然没有任何作用

我很肯定这是一个范围的问题,但我不确定

如果你需要我提供更多的代码,尽管问。当你找到答案时,请解释它为什么起作用。谢谢你