Инициализация множественного наследования super() с разными подписямиPython

Программы на Python
Гость
Инициализация множественного наследования super() с разными подписями

Сообщение Гость »

Предположим, что у нас есть два класса, один конструктор принимает два аргумента, а второй принимает один аргумент, все они имеют свою собственную инициализацию. Теперь я хочу создать третий класс, который является производным от них обоих и имеет собственную инициализацию. Вот моя попытка:
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

Вернуться в «Python»