Я пытаюсь создать объект с помощью метода run, который будет обернут методом _wrap_run method
. Я хотел бы иметь возможность вызывать метод и его обертку, просто набирая instance.run()
и я хотел бы иметь возможность разделить объект на подклассы, чтобы я мог переопределить метод run()
и заставить его по-прежнему выполнять оболочку,
Проще говоря, я хочу, чтобы люди могли иметь подкласс A и переопределять run()
но при этом иметь вызовы метода run()
выполнения функции-оболочки.
У меня есть некоторые трудности с механикой этого. У кого-нибудь есть предложения по поводу этого подхода?
class A:
def run(self):
print "Run A"
return True
def _wrap_run(self):
print "PRE"
return_value = self.run()
print "POST"
return return_value
run = property(_wrap_run)
a = A()
a.run()
"""
Should Print:
PRE
Run A
POST
"""
class B(A):
def run(self):
print "Run B"
return True
b = B()
b.run()
"""
Should Print:
PRE
Run B
POST
"""