Этот код выбрасывает исключение, AttributeError, "wtf!", потому что A.foo()
вызывает B.foo1()
, а не должен вызывать A.foo1()
? Как заставить его вызывать A.foo1()
(и любой вызов метода внутри A.foo()
должен вызывать 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()