Предположим, что у нас есть два класса, один конструктор принимает два аргумента, а второй принимает один аргумент, все они имеют свою собственную инициализацию. Теперь я хочу создать третий класс, который является производным от них обоих и имеет собственную инициализацию. Вот моя попытка:
class SuperClass1:
def __init__(self,x,y):
self.x =x
self.y =y
class SuperClass2:
def __init__(self,z):
self.z =z/2
class Derived(SuperClass1, SuperClass2):
def __init__(self,x,y,z):
super().__init__(x,y)
super(SuperClass2).__init__(z)
d1 = Derived(10,11,12)
print(d1.x, d1.y, d1.z)
# d1 = Derived()
# d1.info()
но при запуске получаю следующую ошибку:
TypeError: super() argument 1 must be type, not int
Я только учусь и провожу эксперименты, скажите, пожалуйста, возможно ли это сделать?
Отредактировано: вы имеете в виду вот так?< /p>
class Derived(SuperClass1, SuperClass2):
def __init__(self,x,y,z):
super().__init__(x,y)
super(SuperClass1, self).__init__(z)
d1 =Derived(10,11,12)
print(d1.x,d1.y,d1.z)
Подробнее здесь: https://stackoverflow.com/questions/781 ... signatures
Инициализация множественного наследования super() с разными подписями ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Метод SUPER() в Python 3.11 — «Ошибка выполнения: super(): нет аргументов»
Anonymous » » в форуме Python - 0 Ответы
- 95 Просмотры
-
Последнее сообщение Anonymous
-