How to set a class inheritance at instance creation?

glomde tbrkic at yahoo.com
Tue May 29 11:52:51 EDT 2007


Hi I wonder if you can set what subclass a class should
have at instance creation.

The problem is that I have something like:

class CoreLang():
    def AssignVar(self, var, value):
         pass

class Lang1(CoreLang):
     def AssignVar(self, var, value):
          return var, "=", value

class Lang2(CoreLang):
     def AssignVar(self, var, value):
          return var, "<=", value

class WriteStruct():
     def Generate(self, vars):
        for var in vars:
             print self.AssignVar()

The problem is that I want  WriteStruct to sometimes be a subclass of
Lang1 and sometimes
of Lang2.
In the above example I could but the Generate Method in CoreLang. But
in my real
example I also want to able to subclass WriteStruct to be able to easy
customize WriteStruct.
Which I wouldnt be able to do if it was a method in CoreLang.

So in code I would like to write something like:

WriteStruct(Lang1).Generate(vars)

Even better would be that if I in the Lang1 class could
just do WriteStruct().Generate(vars) and Lang1 class would
magically make WriteStruct a subclass of itself.


Cheers,

/T




More information about the Python-list mailing list