"" . ,
immutable_obj.attr.attrs_attr = new_value
immutable_obj.attr[2] = new_value
, attrs_attr , . . , :
>>> a = ImmutableClass(value)
>>> b = ImmutableClass(value)
>>> c = a
>>> a == b
True
>>> b == c
True
>>> a.attr.attrs_attr = new_value
>>> b == c
False
, , getattr, - . . setattr , , ? , , .
, , :
class Tuple(list):
__metaclass__ = Immutable
, .
>>> t = Tuple([1,2,3])
>>> t.append(4)
>>> t
[1, 2, 3, 4]
>>> u = t
>>> t += (5,)
>>> t
[1, 2, 3, 4, 5]
>>> u
[1, 2, 3, 4, 5]
, C, , .