Создание подкласса int и переопределение метода __init__ - Python

Возможное дублирование:
наследование от str или int

Привет народ,

Я безуспешно пытаюсь создать подкласс класса 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)

Любые идеи? :)


person RadiantHex    schedule 17.04.2011    source источник


Ответы (1)


См. __new__:

__new__ () предназначен в основном для того, чтобы позволить подклассам неизменяемых типов (например, int, str или tuple) настраивать создание экземпляров. Он также обычно переопределяется в настраиваемых метаклассах, чтобы настроить создание класса.

person robert    schedule 17.04.2011