如何保持许多变量相等而不每次都分配给它们?

How to keep many variables equal without assigning to them all every time?

我想做的是保持三个变量相等,而不是每次都分配它们。

a=b=c=4
b=10
print a,b,c # 4 10 4

或者换句话说,如果我有很多变量,如果其中一个发生变化,如何使其他变量也发生变化?

print a # a=10
print b # b=10 
print c # c=10

如何在整个代码中保持多个变量相等? 我知道我可以轻松地重新分配它们。 有没有比这更好的方法,或者我必须每次都分配所有变量?

这是一种面向对象的方式,它正式化了我在评论中提出的建议 — 基本上是将共享对象放入一个可变容器中,例如列表。

from __future__ import print_function

class Mutable(object):
    def __init__(self, value):
        self._value = [value]

    def get_value(self):
        return self._value[0]

    def set_value(self, value):
        self._value[0] = value

    value = property(get_value, set_value)

    def __repr__(self):
         return repr(self.get_value())

class Pointer(Mutable):
    def __init__(self, obj):
        if not isinstance(obj, (Mutable, Pointer)):
            raise ValueError(
                "{!r} is not a object of type Mutable or Pointer".format(obj))
        self._value = obj._value


if __name__ == '__main__':

    a = Mutable(0)
    b = Pointer(a)
    c = Pointer(b)
    print(a, b, c)  # -> 0 0 0
    a.value = 13
    print(a, b, c)  # -> 13 13 13
    b.value = 42
    print(a, b, c)  # -> 42 42 42