Problem with inheritance

Jean-Michel Pichavant jeanmichel at sequans.com
Fri Oct 21 05:49:49 EDT 2011


Sverre wrote:
> I have to classes a and b
>>> class a(object):
> def __init__(self,x):
> self.x = x
> self.build()
>> def build(self):
> return
>> class b(a):
> def __init__(self,x):
> a.__init__(self,x)
> self.y = 0 # ???
>> def build(self):
> # do something
> self.y += 2*self.x
>> t = b(1)
>> The line marked with "???" will no be executed and I don't know the
> reason. This example is working as intended, but not not the code I'm
> working on. I'm using Eclipse. I don't know how to debug this
> problem.
>>
By the way, you're executing self.y += 2*self.x before initializing it to 0.
class b(a):
 def __init__(self,x):
 self.y = 0 
 a.__init__(self,x)
Note that having the constructor of 'a' calling an overriden method by 
'b' (build) is kinda funny. I would advise not to do so unless required.
JM


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /