在Python3中,我假设创建一个具有父类的类会导致父类被实例化。这个代码显示它不是那样工作的。你知道吗
class AClass:
def __init__(self):
print("make A")
self.val = True
def f(self):
return self.val
class BClass(AClass):
def __init__(self):
print("make B")
self.val = False
def g(self):
return self.val
b = BClass()
print(b.f())
print(b.g())
输出为
make B
False
False
输出显示未调用AClass.__init__(self)
,函数f
使用在BClass
中创建的自值。如果AClass
实例存在,那么g
函数将返回True
。你知道吗
我正在学习Python,我发现这种行为非常违反直觉。我想要的是在继承层次结构的每个级别上都有一个self
实例变量。这在Python3中不正常吗?如果继承树中有self
个实例,那么方法名会遵循常规继承规则吗?Python是否做了其他事情来实现我想要的东西?你知道吗
要调用要使用的父级的init函数:
基本上是调用当前实例的父类(从而发送类的实例类型和当前实例化的类self)。你知道吗
我也不觉得这有悖常理,你重写了父函数的init函数。你知道吗
相关问题 更多 >
编程相关推荐