Python Object-Oriented Python Advanced Objects Double

Help Overriding int class

I am trying to override the int class and am feeling lost. Any help would be appreciated.

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

1 Answer

Jassim Al-Hatem
Jassim Al-Hatem
19,543 Points

Hi Davis,

This will solve your problem.

class Double(int):
    def __new__(cls, *args, **kwargs):
        inst = super(Double, cls).__new__(cls, *args, **kwargs)
        return inst

or this ( what you were aiming for probably)

class Double(int):
    def __new__(cls, *args, **kwargs):
        inst = int.__new__(cls, *args, **kwargs)
        return inst

This article explains the magic method new very well.