|
Какой рейтинг вас больше интересует?
|
Программирование » Метод super() в Python2013-05-27 17:58:00 (читать в оригинале)В Python есть метод super(), который обычно применяется к объектам. Его главная задача это возможность использования в классе потомке, методов класса-родителя. По аналогии с PHP5 нечто вроде parrent::__construct() Смотрим пример: # Родительский класс class A(object): def __init__(self): print(u'конструктор класса A') # Потомок класса А class B(A): def __init__(self): print(u'конструктор класса B') super(B,self).__init__() Смысл примера заключается в том, что Python не запустит родительский конструктор, поскольку мы его переопределили в классе B… Поэтому методом super() мы явно вызываем родительский конструктор. Кто-то посчитает код избыточным, ведь приходиться ссылаться на текущий класс чтобы запустить методы родителя, как стало известно в Python версии 3.0 это проблема решена, метод super() будет вызываться без аргументов. Кстати существует альтернативная реализация тех же самых действий, как еще ее называют в старом стиле: class A: def __init__(self): print(u'конструктор класса A') class B(A): def __init__(self): print(u'конструктор класса B') A.__init__(self)
|
Категория «Обзоры»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.
