私のpythonコードには次のような状況があります:
class Parent(object):
def run(self):
print "preparing for run"
self.runImpl()
print "run done"
class Child(Parent):
def runImpl(self):
print "child running"
しかし、私はそのような「デコレータ」のいくつかの世代で、「runImpl」の前後に異なるセットアップ/破棄ステップを実行するケースがあり、現在、クラスで 、run()
およびrunImpl()
を定義することを余儀なくされています。runImplSingleProcess()
Parent
Child
ChildSingleProcess
次の形式のソリューションを探しています。
class Parent(object):
@wrapping_child_call
def run(self, func_impl, *args, **kwargs)
print "preparing for run"
func_impl(*args, **kwargs)
print "run done"
class Child(Parent):
def run(self):
print "child running"
このように、Child クラスはこれを意識する必要はほとんどありません。
多重継承の問題もあるかもしれません。aがandChild
から継承する場合、正直なところ、正しい動作がどうあるべきかわかりません。Parent1
Parent2
これを達成するための良い、自然な方法を知っている人はいますか? それとも私はここでデザインをレイプしていますか?
ありがとう
ヨナタン