子类化int并重写__init__方法 - Python
可能是重复的问题:
从str或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)
有什么想法吗? :)
1 个回答
9
看看这个链接:__new__
:
__new__
() 主要是为了让那些不可变类型的子类(比如整数、字符串或者元组)可以自定义实例的创建方式。它也常常在自定义的元类中被重写,以便自定义类的创建过程。