Multiple hierarchie and method overloading
Philippe Martin
pmartin at snakecard.com
Tue Apr 25 10:24:00 EDT 2006
Thanks,
I'll try that.
Philippe
Ben Cartwright wrote:
> Philippe Martin wrote:
>> I have something like this:
>>
>> Class A:
>> def A_Func(self, p_param):
>> .....
>> Class B:
>> def A_Func(self):
>> .....
>>
>> Class C (A,B):
>> A.__init__(self)
>> B.__init__(self)
>>
>> .....
>>
>> self.A_Func() #HERE I GET AN EXCEPTION "... takes at least 2
>> arguments (1
>> given).
>>
>>
>> I renamed A_Func(self) to fix that ... but is there a cleaner way around
>> ?
>
> When using multiple inheritence, the order of the base classes matters!
> E.g.:
>
> class A(object):
> def f(self):
> print 'in A.f()'
> class B(object):
> def f(self):
> print 'in B.f()'
> class X(A, B):
> pass
> class Y(B, A):
> pass
>
> >>> x = X()
> >>> x.f()
> in A.f()
> >>> y = Y()
> >>> y.f()
> in B.f()
>
> If you want to call B.f() instead of A.f() for an X instance, you can
> either rename B.f() like you've done, or do this:
>
> >>> B.f(x)
> in B.f()
>
> --Ben
More information about the Python-list
mailing list