ラップされた関数の名前がわからない場合、Pythonデコレータを使用してメソッドをマークし、後で使用することは可能ですか?ここでPythonデコレータ:デベロッパーによるラップ関数のリスト表示
は一例であり、私はmethod_with_custom_nameの名前を知らない:私が正しくあなたの質問を理解していれば
@run_this_method
def method_with_custom_name(my_arg):
return "The args is: " + my_arg
def _init_and_run():
# Here, I want to get and call method_with_custom_name
# but I don't know it's name,
# so the next line isn't valid.
return run_this_method()(my_arg_value)
def run_this_method(m):
def w(my_arg):
_do_some_magic(my_arg, m)
return w
def _do_some_magic(callback_arg, callback):
if some_checks():
callback(callback_arg)
は、どのように私は(@run_this_method
いいえ、あなたは、あなたよりも、それ以上に、これを行うためにグローバルな状態を導入する必要がない、のでアプリで何かを追跡するためにグローバル状態を導入する必要があります。 –
ありがとう、それは動作します。 – dkiselev
@ Two-BitAlchemistは、グローバルな状態を持たずに実装する方法を明確にすることができますか? –