This would accept ints, floats, and decimal types. import decimal class Nint(int): def __add__(self, x, y): try: return x+y except: return None if __name__=='__main__': N=Nint() print N.__add__( 1, 2 ) print N.__add__( 1, None ) print N.__add__(decimal.Decimal("2"), decimal.Decimal("3")) print N.__add__(decimal.Decimal("2"), 3)