デコレータ内で、装飾されているオブジェクトの名前を参照できますか?例えば、
def add_debug_info(func):
# how to write magic_function?
name = magic_function(func)
# name is 'execute' when applied as
# @add_debug_info
# def execute():
より高いレベルの関数を渡しているため、この名前を含むデバッグステートメントを出力しようとしています。デバッグステートメントがどの関数を参照しているかを判断するのは困難です。
オブジェクトの名前を取得する方法は1つしかわかりませんが、ここではうまく機能しません(複数の名前でオブジェクトを参照できますが、たまたま装飾された1つの特定の名前が必要です)。