子类化int并重写__init__方法 - Python

4 投票
1 回答
5000 浏览
提问于 2025-04-16 15:54

可能是重复的问题:
从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__() 主要是为了让那些不可变类型的子类(比如整数、字符串或者元组)可以自定义实例的创建方式。它也常常在自定义的元类中被重写,以便自定义类的创建过程。

撰写回答