Question about instance creation

Robin Barendregt r.barendregt at village.uunet.be
Mon Mar 20 15:47:00 EST 2000


Hi all,

This is my first ever post to a newsgroup, so if I'm breaking every
rule, please forgive me :)
I'm a python newbie and am trying to create instances of a class that
can have a changing base class. A code example should clarify
(questions follow after code snippet):

File class1.py contains:

from class2 import *

class Class1:
    def __init__(self, arg = "no arg given"):
        print 'Class1 init'
        print arg
        self.var1 = 'this is var1'

    def method1(self):
        print "this is method1"		
		
class Class2:
    def __init__(self):
        print 'Class2 init'
        self.var2 = 'this is var2'
		
    def method2(self):
        print "this is method2"
		
class Class3(Class1, Class2):
    def __init__(self):
        Class1.__init__(self)
        Class2.__init__(self)
        print 'Class3 init'
        c = DynamicClass(Class1, "arg given")
        print c
        self.var3 = 'this is var3'

    def method3(self):
        print "this is method3"
		
if __name__ == '__main__':
    c = Class3()

And file class2.py contains:

class DummyClass:
    def __init__(self):
        pass

BaseAlias = DummyClass

class DynamicClass:
    def __init__(self, newAlias, *args):
        global BaseAlias
        BaseAlias = newAlias
        apply(BaseAlias, args)

class DerivedClass(BaseAlias):
    def __init__(self, *args):
        apply(BaseAlias.__init__, (self,) + args)


I want the var c in Class3.__init__ to contain and instance of the
class given as 1st argument to DynamicClass. I tried using return in
the DerivedClass.__init__ but I get an exception saying I should
return None in an __init__. How can I accomplish this?

Oh, and thanks for reading :)

Robin Barendregt.



More information about the Python-list mailing list