所以我有一个小的python程序,分布在几个类中。在我的主要课程中,我告诉要显示的标题屏幕类,然后等待输入。如果它得到的输入是'q',它会回调我的主类,告诉它将它的停止标志设置为true。否则,它只是循环。
这是我给标题画面的回调:
def quit():
stopped = True
在回调之外将stop设置为False。回调被注册正常,并没有问题,但似乎在titlescreen中本地设置停止为true,而不是在main。我可以通过创建一个类stopFlag并执行完全相同的操作来解决这个问题,除了在对象中。
我的问题是为什么我需要创建一个新课程呢?有没有办法我可以在main中设置一个全局标志,它只是一个布尔值,而不是从中创建一个对象?我怎么能有boolean的回调引用?
编辑:
我宣布停止这样:
stopped = False
这是退出回调注册调用:
titleScreen.registerCallbackQuit(quit)
看起来像:
def registerCallbackQuit(self, callback):
self.callbackQuit = callback
如果它在用户输入中获得,则调用quit。
答案 0 :(得分:0)
全球停止会起作用(可能)。人们使用类来避免全局(以及其他)。如果“停止”分散在许多文件上,则需要导入它。