Разделение на подклассы интервала в Python

Я интересуюсь разделением на подклассы встроенного int введите в Python (я использую v. 2.5), но испытываю некоторые затруднения, получая работу инициализации.

Вот некоторый пример кода, который должен быть довольно очевидным.

class TestClass(int):
    def __init__(self):
        int.__init__(self, 5)

Однако, когда я пытаюсь использовать это, я добираюсь:

>>> a = TestClass()
>>> a
0

где я ожидал бы, что результат будет 5.

Что я делаю неправильно? Google, до сих пор, не был очень полезен, но я не действительно уверен, что я должен искать

46
задан me_and 13 July 2010 в 15:00
поделиться

1 ответ

int является неизменяемым, поэтому вы не можете изменить его после создания, используйте __new__ вместо этого

class TestClass(int):
    def __new__(cls, *args, **kwargs):
        return  super(TestClass, cls).__new__(cls, 5)

print TestClass()
65
ответ дан 26 November 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: