1
一般的なデコレータイディオムの明示的な置き換えが必要です。明示的な関数で定義されたパラメータを持つメタデコレータ
長年にわたって多くのコードベースに説明なしcopy-pastedてきた巧妙な1行のデコレータがあります:これで
decorator_with_args = lambda decorator: lambda *args, **kwargs: lambda func: decorator(func, *args, **kwargs)
私の問題は、正確にthat it is cleverです:それは、それが何をするかについては何も説明していません命名されていない多くの動いている部分は、それは明白ではなく、表現力が欠けています。
2005年のPeter Huntのwidely-cited ActiveState recipeでさえ、これが内部で何をしているのか、その部品の名前が何であるべきかについては何の手がかりも与えていません。
私はよりPythonicで、より明示的で表現力豊かな置換を見たいと思います。