装饰器修复技术

Posted skyoceanchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器修复技术相关的知识,希望对你有一定的参考价值。

装饰器修复技术,让其更加完美,如果不加这个的话,函数内部会打印装饰器内的注释,加上之后,打印的是被装饰的函数.

装饰器

def login_auth(func):
    """我是装饰器"""
    def inner(*args, **kwargs):
        res = func(*args, **kwargs)
        return res

    return inner

@login_auth
def login():
    """我是被装饰的函数"""
    ...
print(login)
print(help(login))
###############################
<function login_auth.<locals>.inner at 0x000001DC6ABE60D0>
Help on function inner in module __main__:

inner(*args, **kwargs)
    我是装饰器

None

修饰装饰器

导入from functools import wraps

from functools import wraps
def login_auth(func):
    @wraps(func)

    def inner(*args, **kwargs):
        """我是装饰器"""
        res = func(*args, **kwargs)
        return res

    return inner

@login_auth
def login():
    """我是被装饰的函数"""
    ...
print(login)
print(help(login))
####################################
<function login at 0x000002ADDBEC60D0>
Help on function login in module __main__:

login()
    我是被装饰的函数

None

以上是关于装饰器修复技术的主要内容,如果未能解决你的问题,请参考以下文章

python使用上下文对代码片段进行计时,非装饰器

python中装饰器修复技术

修复处理 @property setter 装饰器的 pyflakes

python装饰器中@wraps作用--修复被装饰后的函数名等属性的改变

修复表格装饰器错误后我们应该做些啥不同的事情?

装饰器 以及 django 中的应用