python - 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吗?t
a
在解决这个问题时,我得到了错误AttributeError: type object 'c' has no attribute 't'
,但不应该super().__init__()
从类中获取变量 ta
并将其放到类c
也有它的地方?
解决方案
是的,你是对的,但是发生错误是因为你试图访问t
类本身而不是它的实例。以下应该有效:
inst = c()
print(inst.t) # 5
推荐阅读
- makefile - 编译失败,“重定位 R_X86_64_32 对 '.rodata' 不能在制作 PIE 对象时使用;使用 -fPIE 重新编译
- c# - 连接到接入点“网络子系统已关闭”
- python - 如何在 Anaconda Jupyter Notebook 中将文件夹添加到 PYTHONPATH?
- python - 我想使用不和谐角色作为命令的要求
- c# - 在 c# 中编辑一个文本文件,该文件恰好是一个 Illustrator (.ai) 文件
- excel - 如果列 U 有数据或删除整行的日期,则过滤特定列“U”的 VBA 宏
- javascript - 下划线单击的文本元素
- nuxt.js - 从页面中提取 AsyncData
- python - 如何在没有 `` 的情况下使用 Alter Table 获得值?
- javascript - 将外部 Javascript 文件添加到从 codepen 导出的 Html 代码