[python]如何创建一个不可变的类
所谓的不可变的类就是类的实例不可修改。
下面我们先看一下普通的类:
In [1]: class A(object):
...: pass
...:
In [2]: a = A()
In [3]: a.abc = 1
In [4]: a.abc
Out[4]: 1
普通的类的实例可以在运行时添加新的属性。
那么如何定义一个不可变的类呢? 下面就来看一个不可变类的例子:
In [8]: class B(object):
....: __slots__ = ['abc']
....: def __init__(self, abc):
....: super(B, self).__setattr__('abc', abc)
....: def __setattr__(self, name, value):
....: raise ...