Hello!
Why not:
class A: def a_lengthy_method(self, params): # do some work depending only on data in self and params
class B(A): pass
?
Lg, AXEL.
As a rough guess, I think the original poster was wondering how to include *one* specific method from class A into B, without including all the methods of A. Jp Calderone's suggestion of defining a special Mixin class seems to be the cleanest implementation.
E.g.
class MyMixin: """ Defines only a single method. It may be a debug call, or a replacement for the classes' string representation. Etc. """ def a_lengthy_method(self,params): # do some work
class A(MyMixin): def other_lengthy_procedures(self, params): pass
class B(MyMixin): pass
The advantage of this is that you can define a normal inheritance tree for a variety of classes, and then specifically override a single (or group) of methods by placing the MyMixin class at the front of the inheritance call. (The book "Programming Python" uses this a LOT in the Tkinter section.)
E.g.
class C: def well_now_what_do_we_do(self): # stuff def a_lengthy_method(self,params): # This does the wrong stuff.
class D(MyMixin, C): def __init__(self): # blahblahblah
Now class D has the "correct" a_lengthy_method, inherited from MyMixin, as well as all the other methods from class C, and the methods defined in it's own class statement.
Joal
-- http://mail.python.org/mailman/listinfo/python-list