Movatterモバイル変換
[0]ホーム
Newbie inheritance problem
Oleg Broytmannphd at phd.fep.ru
Mon Apr 2 09:06:07 EDT 2001
On Mon, 2 Apr 2001, zzzzz wrote:> 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? def __add__(self,other) return self.__class__(self._value+other._value)Oleg.---- Oleg Broytmannhttp://phd.pp.ru/phd at phd.pp.ru Programmers don't die, they just GOSUB without RETURN.
More information about the Python-listmailing list
[8]ページ先頭