Is there a way to specify a superclass at runtime?

Chris Colbert sccolbert at gmail.com
Mon Oct 5 09:22:17 EDT 2009


I have an application that needs to run different depending on whether
the input data is being simulated, or provided from instrumentation.

I am trying to abstract this machinery in a single class called
Controller which I want to inherit from either SimController or
RealController based on whether a module level flag SIMULATION is set
to True or False.

so I have something like this:


SIMULATION = False

class SimController(object):
    "do sim stuff here"

class RealController(object):
    " do real stuff here"

class Controller(SuperKlass):
    pass


so if SIMULATION == False I want to be able to instance a Controller
object that inherits from RealController and vice-versa.

I thought this might be possible with metaclasses, but I didnt find
anything useful in the docs or on google.

Thanks for any help!

Cheers,

Chris



More information about the Python-list mailing list