子类中变量的值去哪儿了?

  • 本文关键字:变量 子类 python
  • 更新时间 :
  • 英文 :

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)中的参数。c2self.x的值是 3,因为C2继承自B,而 继承自A,其中出现self.x = x行。在这一行中,xc2 = C2(3,5)行中输入的内容,因为它被分配给self.x,所以c2self.x是3。由于类C2中的行self.y = y,实例c2的 y 值是在第c2 = C2(3,5)行 5 中输入的值。4 + 3 + 5 等于 12。

最新更新