【发布时间】:2021-06-03 05:14:00
【问题描述】:
有人可以向我解释一下 child_2 类中 super() 的含义吗?我发现 super() 启动是在 child_2 而不是 child_1 中拾取 convert_id() 函数,这有点违反直觉。我想通过调用super(),假设是使用class_1中的函数来初始化对象。
from abc import ABC, abstractmethod
class base(ABC):
@abstractmethod
def convert_id(self, id):
pass
class child_1(base, ABC):
def __init__(self, id):
self.new_id = self.convert_id(id)
def convert_id(self, id):
return id
class child_2(child_1):
def __init__(self, id):
self.id = id
super().__init__(id=self.id)
def convert_id(self, id):
return id+1
test = child_2(0)
print(test.new_id)
1
【问题讨论】:
标签: inheritance subclass super metaclass