繁体   English   中英

在Python回调中设置变量

[英]Setting Variable in Python Callback

所以我有一个分布在几个类中的小型python程序。 在主班上,我告诉我的标题屏幕班要显示,然后等待输入。 如果得到的输入是“ q”,它将返回我的主类,告诉它将stop标志设置为true。 否则,它只会循环。

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

def quit():
    stopped = True

在回调之外,stopped设置为False。 回调已注册好,并且没有问题,但似乎在titlescreen本地而不是在main中将stop设置为true。 我可以通过创建类stopFlag并执行完全相同的操作(对象中除外)来解决此问题。

我的问题是为什么我需要重新上课才能做到这一点? 有没有一种方法可以在main中设置仅是布尔值的全局标志,而无需从中创建对象? 我怎样才能得到该布尔值的回调引用?

编辑:

我声明像这样停止:

stopped = False

这是退出回调注册调用:

titleScreen.registerCallbackQuit(quit)

看起来像:

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

如果在用户输入中得到一个,它将调用quit。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM