Инициализация множественного наследования 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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