Monday, December 28, 2009

Python: функция super()

Функция super(), как правило, используется для вызова метода, который был бы вызван, если бы не был найден данный метод:
class A(object):
def __init__(self): print "A init"

class B(A):
def __init__(self):
print "B init"
super(B, self).__init__()

>>> x = B()
B init
A init

Функция возвращает прокси-объект, который делегирует вызовы методов нужным классам.
Порядок поиска методов такой же, как и в getattr(), но поиск не учитывает сам класс.

No comments:

Post a Comment