Multiple inheritance and using a method of one of the base classes
<p>I have the following code:</p>

<pre><code>class A(object):
    def __init__(self):
        self.name = "A"
        super(A, self).__init__()

    def Update(self):
        print "Update A"
        self.PickTarget()

    def PickTarget(self):
        print "PickTarget A"

class B(object):
    def __init__(self):
        self.name = "B"
        super(B, self).__init__()

    def Update(self):
        print "Update B"
        self.PickTarget()

    def PickTarget(self):
        print "PickTarget B"

class C(A, B):
    def __init__(self):
        super(C, self).__init__()

    def Update(self, useA):
        if useA:
            A.Update(self)
        else:
            B.Update(self)

c = C()

c.Update(useA = True)
# prints: 
# Update A
# PickTarget A

c.Update(useA = False)
# prints:
# Update B
# PickTarget A
</code></pre>

<p>Why does calling <code>C.Update</code> with <code>useA=False</code> still call into <code>A.PickTarget</code>? How can I make this work how I want it to work (ie B.Update always calls into B.PickTarget)? I'm sure this has been asked before but my searching turned up nothing - probably because I don't know what to search for.</p>
