Я интересуюсь разделением на подклассы встроенного int
введите в Python (я использую v. 2.5), но испытываю некоторые затруднения, получая работу инициализации.
Вот некоторый пример кода, который должен быть довольно очевидным.
class TestClass(int):
def __init__(self):
int.__init__(self, 5)
Однако, когда я пытаюсь использовать это, я добираюсь:
>>> a = TestClass()
>>> a
0
где я ожидал бы, что результат будет 5
.
Что я делаю неправильно? Google, до сих пор, не был очень полезен, но я не действительно уверен, что я должен искать
int
является неизменяемым, поэтому вы не можете изменить его после создания, используйте __new__
вместо этого
class TestClass(int):
def __new__(cls, *args, **kwargs):
return super(TestClass, cls).__new__(cls, 5)
print TestClass()