您可以子类化
int,但是由于它是 不可变的,因此
您需要提供一个
.__new__()构造函数挂钩:
class MyInt(int): def __new__(cls, value): new_myint = super(MyInt, cls).__new__(cls, value) return new_myint
您确实需要调用基本
__new__构造函数才能正确创建子类。
在Python 3中,您可以
super()完全省略以下参数:
class MyInt(int): def __new__(cls, value): new_myint = super().__new__(cls, value) return new_myint
当然,这假设您想
value在传入之前进行操作,
super().__new__()或者
new_myint在返回之前进行更多操作;否则,您最好删除整个
__new__方法,并将其实现为
classMyInt(int): pass。


![从不可变类型继承[重复] 从不可变类型继承[重复]](http://www.mshxw.com/aiimages/31/646170.png)
