Python Object-Oriented Python Advanced Objects Double

Kyle Calica
Kyle Calica
5,955 Points

For Double class I keep getting, TypeError: int.__new__(X): X is not a type object (int) [Solved]

I can't figure out why this isn't working. It's also not asking me to multiply by two but when I do still the same issue.

doubler.py
class Double(int):
    def __new__(self, *args, **kwargs):
        return int.__new__(*args, **kwargs)
Kyle Calica
Kyle Calica
5,955 Points

solved!

class Double(int):
    def __new__(self, *args, **kwargs):
        return int.__new__(*args, **kwargs)

No need for self in __new__

Chris Freeman
Chris Freeman
Treehouse Moderator 65,221 Points

Correct! Since the __new__ method is called first and is responsible for creating the class instance, there is no self yet to be referenced. After __new__ creates the instance, it calls __init__ using the newly created instance as the value of __init__.self