functools.wraps

本文介绍了如何使用Python中的functools.wraps来保持被装饰函数的原始文档字符串(__doc__)不变。通过两个示例对比展示了使用与未使用functools.wraps的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import functools


def note(func):
    " not function "
    # @functools.wraps(func)  # 对自定义的装饰器再加上functools.wraps装饰器, 作用是让自定义的装饰器函数wrapped在传给func时, 仍保func函数的解释文档__doc__
    def wrapped(*args, **kwargs):
        " wrapped function"
        print('note something')
        return func(*args, **kwargs)
    return wrapped

@note
def test(a, b):
    " func function"
    print('I am test')
    return a+b

print(test(1,2))
print(test.__doc__)

运行结果:

note something
I am test
3
 wrapped function
import functools


def note(func):
    " not function "
    @functools.wraps(func)
    def wrapped(*args, **kwargs):
        " wrapped function"
        print('note something')
        return func(*args, **kwargs)
    return wrapped

@note
def test(a, b):
    " func function"
    print('I am test')
    return a+b

print(test(1,2))
print(test.__doc__)

运行结果:

note something
I am test
3
 func function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值