Sylvain Ferriol wrote:
>>>>>class Toto(float):
>>>> .... eq = float.__eq__
>> ....
>>>>>>>Toto().eq(42)
>>>> False
>>> i can not use it because:
> class toto(float):
> def __init__(self,a=None):pass
>> t=toto(a=3)
> TypeError: 'a' is an invalid keyword argument for this function
Override __new__() then:
>>> class Toto(float):
... def __new__(cls, a=None):
... if a is None:
... a = 42
... return float.__new__(cls, a)
... def __init__(cls, a=None):
... print "random message containing", a
...
>>> Toto()
random message containing None
42.0
>>> Toto(42)
random message containing 42
42.0
Peter