Python装饰器内部是否存在任何“被接受的”命名约定?
风格指南没有提到它,这篇关于装饰器的精彩文章在使用变量名称时相当一致,通常会使用“wrapped”的变形作为返回的最终函数名称,但是在创建需要参数的装饰器时,使用的变量名称如何呢?
def decorator_name(whatevs):
def inner(function):
def wrapped(*args, **kwargs):
# sweet decorator goodness
return wrapped
return inner
具体来说,上述示例中的 inner
、function
和 wrapped
的约定是什么?
decorator
的单参数函数,那么无论它的参数被称为什么,都很清楚该参数是什么。 - Bendecorator
可能是一个非常好的主意,因为decorator_name
并不是真正的装饰器,而是一个装饰器工厂,多层嵌套的函数定义可能会有点令人困惑。 - Benfunction
? 我也在 这里 问过。 - mstringer@foo(...)
中,foo
函数实际上需要返回应用于函数的装饰器 (foo 在导入时被调用,然后 foo 的返回值修饰您的函数)。 - ThiefMaster