Appel d'une méthode surchargée, superclasse une méthode surchargée d'appels

Ce code génère une exception, AttributeError, "wtf!"parce que A.foo() appelle B.foo1()ne devrait-elle pas appel A.foo1()? Comment puis-je le forcer à appeler A.foo1() (et tout appel de méthode à l'intérieur de A.foo() doit appeler A.*)

class A(object):
    def foo(self):
        print self.foo1()

    def foo1(self):
        return "foo"

class B(A):
    def foo1(self):
        raise AttributeError, "wtf!"

    def foo(self):
        raise AttributeError, "wtf!"

    def foo2(self):
        super(B, self).foo()

myB = B()
myB.foo2()

source d'informationauteur Perico de los palotes