Найти - Пользователи
Полная версия: Вызов метода предка класса.
Начало » Python для новичков » Вызов метода предка класса.
1
pfc
Здравствуйте. У меня, наверное, глупый вопрос. Например, у меня есть класс MyClass и он от чего-то наследуется. Мне нужно вызвать конструктор его предка. Везде для этого пишут что-то вроде
super(MyClass, self).__init__(*args, **kwargs)
Вопрос. Почему нельзя написать так:
super(self.__class__, self).__init__(*args, **kwargs)
Разве это не лучше соответствует принципу DRY? Или есть какой-то смысл в дублировании названия? Или есть ситуации, когда второй вариант не будет работать, а первый будет?
Isem
Можно просто писать:

super().__init__( *args, **kwargs )
pfc
Писать-то можно, только “super() takes at least 1 argument”.
Александр Кошелев
pfc
Или есть ситуации, когда второй вариант не будет работать, а первый будет?
Конечно есть.

Например при иерархии в три уровня будет бесконечная рекурсия…

pfc
Писать-то можно, только “super() takes at least 1 argument”.
В третьей версии работает.
pfc
Ясно, спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB