Форум сайта python.su
0
У меня есть иерархия классов. Каждый инициализируется по своему, но в конце каждой инициализации должна вызываться некоторая функция базового класса. Могу ли я как-то это определить один раз в базовом классе? Или нужно явно процедуру инициализации каждого класса потомка завершать нужной функцией?
Офлайн
568
Вынесите всю логику из __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"
Отредактировано FishHook (Янв. 19, 2014 10:43:24)
Офлайн