Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 19, 2014 10:07:45

NE88
Зарегистрирован: 2014-01-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызвать функцию в конце каждой инициализации

У меня есть иерархия классов. Каждый инициализируется по своему, но в конце каждой инициализации должна вызываться некоторая функция базового класса. Могу ли я как-то это определить один раз в базовом классе? Или нужно явно процедуру инициализации каждого класса потомка завершать нужной функцией?

Офлайн

#2 Янв. 19, 2014 10:43:07

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вызвать функцию в конце каждой инициализации

Вынесите всю логику из __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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version