この関数で作成されたラムダ オブジェクトがあります。
def add_url_rule(self, rule, endpoint=None, view_func=None, **options):
self.record(lambda s:
s.add_url_rule(rule, endpoint, view_func, **options))
func_closure
ラムダ関数オブジェクトを使用すると、ラムダ関数のクロージャ スコープにアクセスできます。
(<cell at 0x3eb89f0: str object at 0x2fb4378>,
<cell at 0x3eb8a28: function object at 0x3cb3a28>,
<cell at 0x3eb8a60: str object at 0x3ebd090>,
<cell at 0x3eb8b08: dict object at 0x3016ec0>)
cell_contents
(各cell
オブジェクトの属性を) よく見ると、次のようになります。
>>> [c.cell_contents for c in func.func_closure]
['categoryDisplay',
<function indico.web.flask.util.RHCategoryDisplay>,
'/<categId>/',
{}]
そのラムダ関数は、次の呼び出しによって作成されました。
add_url_rule('/<categId>/', 'categoryDisplay', rh_as_view(RHCategoryDisplay))
ご覧のとおり、順序は関数の引数の順序やラムダ内で引数が使用される順序と一致しません。タイプ/コンテンツに基づいて、どの要素が何であるかを簡単に見つけることができましたが、よりクリーンな方法で行いたいと思います。
だから私の質問は、元の変数名(または関数引数の場合は少なくとも位置)にどのように関連付けることができますか?