python - 子类中变量的值去了哪里?

标签 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) 中的参数。 c2的self.x的值为3,因为C2继承自B,而B继承自A,其中出现 self.x = x 行。在此行中,x 是在 c2 = C2(3,5) 行中输入的内容,因为它被分配给 self.xc2self.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/

相关文章:

python - 使用 XPATH 从特定表/网站获取数据

python - 在 Python 中对列表中的数字进行二进制搜索

python - 如何概括这个类?

python - 更新质心值 k 均值聚类 Python

python - 如何从 IDL 访问这个 'rec.array' 中的数据?

python - 暂停和恢复 QThread

python - SciPy:稀疏数据的 n 维插值

python - 乘以掩码数组会更改numpy中的填充值

Python winreg - 如何将换行写入 REG_SZ 值

python - 使用 Pandas 计算数据框中列中出现的数字