嗨大家好,
我正在尝试将int类子类化而没有任何成功。这是我的尝试:
class SpecialInt(int):
def __init__(self, x, base=10, important_text=''):
int.__init__(self, x, base)
self.important_text=important_text
如果我执行以下操作:
integer = SpecialInt(123, 10, 'rage of the unicorns')
我收到此错误:
TypeRror: int() takes at most 2 arguments (3 given)
有什么想法吗? :)
答案 0 :(得分:6)
请参阅__new__
:
__new__
()主要用于允许不可变类型的子类(如int,str或tuple)自定义实例创建。它也通常在自定义元类中重写,以自定义类创建。
答案 1 :(得分:1)