1

所以我有一个分布在几个类中的小型 python 程序。在我的主类中,我告诉我的标题屏幕类显示然后等待输入。如果它得到的输入是'q',它会回调我的主类,告诉它把它的停止标志设置为真。否则,它只会循环。

这是我给标题屏幕的回调:

def quit():
    stopped = True

在回调之外将stopped 设置为False。回调注册很好,并且没有问题,但它似乎在 titlescreen 本地设置为 stop 为 true,而不是在 main。我可以通过创建一个类 stopFlag 并做完全相同的事情来解决这个问题,除了在对象中。

我的问题是为什么我需要开设一个新课程来做到这一点?有没有办法我可以在 main 中设置一个全局标志,它只是一个布尔值而不用它制作一个对象?我怎样才能获得该布尔值的回调引用?

编辑:

我宣布这样停止:

stopped = False

这是退出回调注册调用:

titleScreen.registerCallbackQuit(quit)

看起来像:

def registerCallbackQuit(self, callback):
    self.callbackQuit = callback

如果它在用户输入中得到 a,它会调用 quit。

4

1 回答 1

0

全球停止会工作(可能)。人们使用类来避免全局变量(除其他外)。如果“停止”分布在许多文件中,则需要导入它。

于 2013-07-18T20:23:31.033 回答