繁体   English   中英

类内函数内的Python全局变量

[英]Python global variable within function within class

我有一个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'

暂无
暂无

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

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