例:
from functools import wraps def test(f): @wraps(f) def inner(): print('wraps的作用:') f() print('所以,wraps的真正作用就是,在不影响装饰器使用的情况下,又可以直接使用func内置功能') return inner @test def func(): ''' 这是一段注释 ''' print('由于调用func时,实际调用的是inner的函数,因为func已经等于inner,所以无法直接使用func的内置功能') print(func()) print(func.__name__) print(func.__doc__) #打印: wraps的作用: 由于调用func时,实际调用的是inner的函数,因为func已经等于inner,所以无法直接使用func的内置功能 所以,wraps的真正作用就是,在不影响装饰器使用的情况下,又可以直接使用func内置功能 None func 这是一段注释
知识点:
函数wraps的作用:
在不影响装饰器使用的情况下,可以直接使用被调用函数的内置功能
__name__:返回函数名
__doc__:返回函数体内的注释