如何解决python的'super'可以给子类它的父类类变量吗
我正在尝试使其具有多个子类,例如类 a
,并且我想要在类 a
的 __init__
中声明的所有变量方法在所有子类中,同时也不需要在 *args
方法中输入任何 __init__
。
我的示例父类是:
class a:
def __init__(self):
self.t = 5
我的示例子类是:
class c(a):
def __init__(self):
super().__init__()
类 c
是否具有类 t
中的变量 a
?
会等于5吗?
在处理这个问题时,我收到错误 AttributeError: type object 'c' has no attribute 't'
,但不应该 super().__init__()
从 a
类中获取变量 t 并将其转到 c
类还有吗?
解决方法
是的,您是对的,但是发生错误是因为您尝试访问类本身而不是其实例上的 t
。以下应该有效:
inst = c()
print(inst.t) # 5
,
return_code=True
这样的代码示例。你会在命令行中得到 1。所以只需使用 self.attr。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。