Это зависит от того, где вещи принадлежат.Обычно, если вы захотите вставить материал между операциями метода base, это означает, что метод должен быть фактически разбит на несколько методов.
Например:
class Base(object):
def my_method(self, input):
print input #suppose this is many lines
print "mymethod" #so is this
может стать:
class Base(object):
def my_method(self, input):
self.do_first_thing(input)
self.do_second_thing("mymethod")
def do_first_thing(self, input):
print(input)
def do_second_thing(self, data):
print(data)
Это позволяет подклассам переопределять весь процесс без необходимости повторной реализации каждого шага.Концепция похожа на шаблонный метод , но в обратном направлении.
(Обычно смысл шаблона шаблонного метода состоит в том, чтобы позволить подклассам переопределять шаги, здесь мы используем ту же структуру, чтобы позволить подклассам переопределятьсам шаблон).