class A(object):
    def __init__(self):
        pass
    def printme(self):
        print "I am A"

class B(object):
    def __init__(self):
        pass
    def printme(self):
        print "I am B"

class K(A, B):
    def __init__(self, value=0):
        if value == 0:
            A.__init__(self)
            print "__init__ A"
        elif value == 1:
            B.__init__(self)
            print "__init__ B"
        self.printme()

o = K(value=1)

Output
>>__init__ B
>>I am A

In above code "B" is correctly getting initialized as per condition.
How ever method "printme" is printing "I am A".
Instead it has to print "I am B" because "B" is the one that has been
initialized. What's wrong here?

Is there a better/another way to do conditional initialization as
needed above?

Cheers

Prashant
Python 2.6.2
Win XP 32
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to