parameterized classes

Fredrik Lundh fredrik at
Thu Jul 24 10:13:27 CEST 2008

John Tantalo wrote:

> Is there is a better way to create parameterized classes than defining 
> and returning a class in a closure? I ask because I want to create 
> arbitrary BaseRequestHandler subclasses that delegate line handling to a 
> given line handler, as in this example:

Oh, now I get it.  Maybe.  Wouldn't it be easier to just use subclassing 
for parametrization:

     class LineRequestHandler(StreamRequestHandler):


     class SomeLineHandler(LineRequestHandler):
         def handle_line(self, line):
           print "I got a line: %s" % line

Alternatively, note that the SocketServer framework doesn't require the 
request handler baseclass to actually be a class; it works with any 
factory object that takes the same three arguments and returns an 
handler instance.  You can use a plain function closure as a factory, if 
you prefer that.


More information about the Python-list mailing list