所以我有一个分布在几个类中的小型 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。