Calling an overridden method, superclass an calls overridden method
This code throws an exception, AttributeError, "wtf!" , because A.foo() is calling B.foo1() , shouldn't it call A.foo1() ? How can I force it to call A.foo1() (and any method call inside A.foo() should call 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() In class A instead of calling self methods you need to call A methods and pass in self manually. This is not the normal way of doing things -- you