私は実行の最後に、return
ステートメントの直前に同じアクションを実行する必要があるPythonオブジェクトを持っています。たとえば:多くの関数の最後で実行されるアクションを指定する
def MyClass(object):
def __init__(self):
pass
def update_everything(self):
'''update everything'''
pass
def f1(self):
#do stuff
self.update_everything()
return result
def f2(self):
#do stuff
self.update_everything()
return result
def f3(self):
#do stuff
self.update_everything()
return result
は、各関数の最後に明示的な呼び出しを除き、これを行うための最善の(?ニシキヘビ)の方法は何ですか?たぶん
Explicit is better than implicit.
おそらく 'self.update_everything()'、btwでなければなりません。 – erbridge
あなたはデコレータを書くことができますが、実際にはもっと多くの行のコードが必要になります。あなたはメタクラスを使うことができるかもしれませんが、それはおそらくMyClassの*すべてのメソッドがそれを常に行うことを意味し、危険なようです。 –