Subclassing int in Python

inheritance, python, python-2.5, subclass

Solution

`int` is immutable so you can't modify it after it is created, use `__new__` instead

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

print TestClass()

Problem

I'm interested in subclassing the built-in `int` type in Python (I'm using v. 2.5), but having some trouble getting the initialization working. Here's some example code, which should be fairly obvious. ``` class TestClass(int): def __init__(self): int.__init__(self, 5) ``` However, when I try to use this I get: ``` >>> a = TestClass() >>> a 0 ``` where I'd expect the result to be `5`. What am I doing wrong? Google, so far, hasn't been very helpful, but I'm not really sure what I should be searching for

Original source

Related problems