【发布时间】:2023-02-02 22:46:37
【问题描述】:
我们有两个基础班。
class A:
def __init__(self) -> None:
pass
class B(A):
def __init__(self) -> None:
print(self)
A.__init__(self)
在初始化B的时候,可以看到传递给A的“self”是B对象的一个实例。
a = A()
b = B()
>> <__main__.B object at 0x0000021CC0E39700>
现在,如果我们打印 b,我们可以看到它也是 B 对象实例的实例。但是,A 不能用 B 之外的 B 实例初始化。
print(b)
A(b)
>> TypeError: __init__() takes 1 positional argument but 2 were given
这里将是无:
b = B()
a = A.__init__(b)
那怎么办?
【问题讨论】:
-
你到底想用这个来完成什么?您是要为子类运行父类的初始化代码,还是要创建具有子类属性的父类实例?目前尚不清楚您的目标是什么。
-
这里的目标是什么。一个类不需要子类被初始化
标签: python