0
私はPythonクラスにいくつかの異なるメソッドを用意していますが、実行時にその名前と引数の値を保存するようにしたいと思います後でそれらを使用してください。私が見つけた一つの方法は、それらのそれぞれにこのような何かを追加することです:クラスメソッドのメタデータをPythonで保存する方法
frame = inspect.currentframe()
args, _, _, values = inspect.getargvalues(frame)
function_name = inspect.getframeinfo(frame)[2]
function_meta = {arg: values[arg] for arg in args}
self.meta[function_name] = function_meta
これは結構です、しかし、私はに、この同じスニペットを貼り付け/ DRYそれを維持することを好むだろうとコピーする必要はありませんすべて方法を追加します。
また、私は別の関数save_meta()
にそれを回すことができたが、その後inspect
は右、代わりにそれを呼び出した関数の、save_meta()
のデータを返すのだろうか?これを解決するためのエレガントで再利用可能な方法はありますか?
でそれを呼び出します。 :)ありがとう!ボーナスの質問:これを行う簡単な方法はありますか? – machaerus
@machaerus申し訳ありませんが、あなたの質問をちょうど見ました。簡単にどういう意味ですか? – pingul
私はカスタム関数を書くことなくこれを行う方法があると思いました。それはかなり基本的な機能のように思えますが、私はちょっとこれには組み込みの方法がないことに驚いています。 – machaerus