31

Python デコレータの内部に「受け入れられた」命名規則はありますか?

スタイル ガイドではそれについて言及されていません。また、デコレータに関するこのすばらしいエントリでは、返される最終的な関数に「ラップ」のバリエーションを使用する点でかなり一貫していますが、引数を取るデコレータを作成するときに使用される名前についてはどうでしょうか?

def decorator_name(whatevs):
    def inner(function):
        def wrapped(*args, **kwargs):
            # sweet decorator goodness
        return wrapped
    return inner

具体的には、上記の例のinnerfunction、およびの規則は何ですか?wrapped

4

2 に答える 2

24

これらの名前には、標準化された規則 (PEP など) はありません。python stdlib を確認すると、これらの関数にさまざまな名前が付けられていることがわかります。

ただし、decoratorデコレータ関数のかなり一般的な名前ですinner
関数を呼び出して、ラップされた関数で装飾することも一般的です (もwrapped一般wrapper的な名前です)。functools.wraps(f)ffunc

def decorator_name(whatevs):
    def decorator(f):
        @wraps(f)
        def wrapper(*args, **kwargs):
            pass # sweet decorator goodness
        return wrapper
    return decorator
于 2012-06-09T00:22:03.113 に答える