首页 > 解决方案 > python的'super'可以给子类它的父类类变量吗

问题描述

我正在尝试使它可以具有多个子类,例如 class a,并且我希望在 classa__init__方法中声明的所有变量都在所有子类中,同时也不需要输入任何*args变量__init__方法。

我的示例父类是:

class a:
    def __init__(self):
        self.t = 5

我的示例子类是:

class c(a):
    def __init__(self):
        super().__init__()

类有来自类c的变量吗?会等于5吗?ta

在解决这个问题时,我得到了错误AttributeError: type object 'c' has no attribute 't',但不应该super().__init__()从类中获取变量 ta并将其放到类c也有它的地方?

标签: pythonsuper

解决方案


是的,你是对的,但是发生错误是因为你试图访问t类本身而不是它的实例。以下应该有效:

inst = c()
print(inst.t)  # 5

推荐阅读