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 -- http://mail.python.org/mailman/listinfo/python-list