在Python回调中设置变量

时间:2013-07-18 19:43:43

标签: python callback

所以我有一个小的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。

1 个答案:

答案 0 :(得分:0)

全球停止会起作用(可能)。人们使用类来避免全局(以及其他)。如果“停止”分散在许多文件上,则需要导入它。