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 workclass A(MyMixin):
def other_lengthy_procedures(self, params):
passclass B(MyMixin):
passThe 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):
# blahblahblahNow 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
