有人在这个网站上遇到了同样的问题,但答案与我遇到的问题无关。
继承 - 方法调用
考虑以下类定义。
class C1(object):
def f(self):
return 2*self.g()
def g(self):
return 2
class C2(C1):
def f(self):
return 3*self.g()
class C3(C1):
def g(self):
return 5
class C4(C3):
def f(self):
return 7*self.g()
obj1 = C1()
obj2 = C2()
obj3 = C3()
obj4 = C4()
对于这个问题,您要考虑在调用方法时调用了哪些方法f
。因此,例如,当obj1.f()
被调用时,调用的f
方法C1
会调用 的g
方法C1
。这可以表示为表单的“呼叫列表”
['C1.f', 'C1.g']
编写三个赋值语句,分别将“调用列表”赋给obj2.f()
变量obj2_calls
,将“调用列表”赋给obj3.f()
变量,将“调用列表”obj3_calls
赋给obj4.f()
变量obj4_calls
。
我理解第一个作业没有问题,obj2_calls = ['C2.f', 'C1.g']
但我正在绞尽脑汁想弄清楚下一个作业。我想既然没有C3.f
那个列表,['C1.f']
但不幸的是它不是。
澄清一下,这是作业