Newbie inheritance problem

zzzzz zzizz_ at notmail.com
Mon Apr 2 07:36:45 EDT 2001


Hi all, I have overwridden the __add__ method for a class, then built
a class based on the above class; however, the object I'm returning is
of the base class not the inherited class. If that doesn't make sense
see below:

class A:
    def __init__(self,value=0.0)
        self._value=float(value)
    def __add__(self,other)
        return A(self._value+other._value)

class B(A):
    pass

x=B(3)
y=B(2)
z=x+y

The way I've done it z becomes an instance of A not B!!! How do I do
it correctly? Do I have to override all the __add__, __sub__, etc...
methods?







More information about the Python-list mailing list