class A(object):
def __init__(self, x):
self.x = x
def f(self, x):
return 2*x
def g(self, x):
return self.f(x)
class B(A):
def g(self, y):
return 3*y + self.x
class C1(B):
def __init__(self, x, y):
B.__init__(self,x)
self.y = y
def f(self, x):
return self.x + self.y
class C2(B):
def __init__(self, x, y):
B.__init__(self,x)
self.y = y
def f(self, x):
return x + self.x + self.y
a = A(5)
b = B(2)
c1 = C1(3,5)
c2 = C2(3,5)
当我执行“表达式 c2.f(4) 的计算结果是什么?”时,我不确定 C2 类中的 f 函数中的 self.x 指向哪里。
你能给我一些建议吗?
最佳答案
c2.f(4)
等于 12。函数 f
中 x 的值为 4,因为这是 c2.f(4) 中的参数
。 c2的self.x
的值为3,因为C2
继承自B
,而B
继承自A
,其中出现 self.x = x
行。在此行中,x
是在 c2 = C2(3,5)
行中输入的内容,因为它被分配给 self.x
,c2
的 self.x
为 3。因为 C2
类中的行 self.y = y
,实例 c2
的 y 值是在 c2 = C2(3,5)
行中输入的值,5. 4 + 3 + 5 等于 12。
关于python - 子类中变量的值去了哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67954344/