小编Bed*_*ton的帖子

Python对象属性共享

我有一个类跟踪其他几个类.这些其他类中的每一个都需要访问特定变量的值,并且这些其他类中的任何一个也必须能够修改此特定变量,以便所有其他类可以看到更改的变量.

我尝试使用属性来完成此操作.一个例子如下:

class A:
    def __init__(self, state):
        self._b_obj = B(self)
        self._state = state

    @property
    def state(self):
        return self._state

    @state.setter
    def state(self,val):
        self._state = val

    @property
    def b_obj(self):
        return self._b_obj

    @b_obj.setter
    def b_obj(self,val):
        self._b_obj = val


class B:
    def __init__(self, a_obj):
        self.a_obj = a_obj

    @property
    def state(self):
        return self.a_obj.state

    @state.setter
    def state(self,val):
        self.a_obj.state = val
Run Code Online (Sandbox Code Playgroud)

我希望它的工作方式如下:

>>> objA = A(4)
>>> objB = objA.b_obj
>>> print objA.state
4
>>> print objB.state
4
>>> objA.state = 10
>>> print objA.state
10
>>> …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

10
推荐指数
1
解决办法
82
查看次数

标签 统计

python ×1

python-2.7 ×1