我正在做一些分布式计算,其中多台机器在假设它们都具有不同类的相同版本的情况下进行通信。因此,让这些类变得不可变似乎是一个好的设计;并不是说它必须阻止一个怀有不良意图的用户,只是它足够不可变,以至于它永远不会被意外地修改。
我该怎么做呢?例如,我如何实现一个元类,使使用它的类在定义之后是不可变的?
>>> class A(object):
... __metaclass__ = ImmutableMetaclass
>>> A.something = SomethingElse # Don't want this
>>> a = A()
>>> a.something = Whatever # obviously, this is still perfectly fine.
替代方法也很好,比如一个装饰器/函数,它接受一个类并返回一个不可变的类。
https://stackoverflow.com/questions/4996815
复制相似问题