我有一个pubnub回调类(回调(,里面有一个消息处理程序函数(消息(。当 pubnub 收到消息时,它会调用处理程序函数,它应该接受一个在类外部(在另一个类和函数中(定义的变量,并根据它从 pubnub 收到的消息对其进行修改。此更新的变量应保持全局可用。我尝试将全局关键字放在所有地方,但它没有帮助:
class callback(SubscribeCallback): # Listener for channel list
def message(self, pubnub, message):
new_var = set(var) - set(message)
# do stuff with new_var
var = new_var #Update global variable (it doesn't, but it should!)
class other(django admin command thing):
def command(self):
var = ['a', 'b'] #Initial definition - this function is only called once
全局关键字需要去哪里才能完成这项工作?我可以从 var2 访问和弹出,但我不能同时读取和写入 var...
您需要
在引用变量的每个上下文中将变量声明为全局变量
>>> class A:
... def test(self, m):
... global X
... X = X + m
...
>>> class B:
... def __init__(self):
... global X
... X = "Y"
...
>>> b = B()
>>> X
'Y'
>>> a = A()
>>> a.test("Z")
>>> X
'YZ'