NE88
Янв. 19, 2014 10:07:45
У меня есть иерархия классов. Каждый инициализируется по своему, но в конце каждой инициализации должна вызываться некоторая функция базового класса. Могу ли я как-то это определить один раз в базовом классе? Или нужно явно процедуру инициализации каждого класса потомка завершать нужной функцией?
FishHook
Янв. 19, 2014 10:43:07
Вынесите всю логику из __init__ в другую функцию. В ините вызывайте эту функцию и “некоторую функцию базового класса”.
class Base(object):
def __init__(self):
self.initialize()
self.final_method()
def initialize(self):
pass
def final_method(self):
print "This is base final method"
class Subclass(Base):
def initialize(self):
print "WOW! This is __init__ of Subclass"