花点时间把python入门<二十六>——装饰器

本文详细介绍了Python装饰器的工作原理及使用方法。装饰器是一种特殊类型的函数,可以用来增强其他函数的功能而不改变其源代码。通过定义内层函数并在外层函数中调用它,可以在不直接修改原始函数的情况下增加额外的功能。

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

1.装饰器
用来增强原有函数的功能,但又不修改原本的函数,进一步理解认为通过对函数a内部再定义一个新函数b,让函数b的返回值为a(*k,**kw)
a的返回值为b的函数名,最终达到偷换函数名,但原有功能不改变。还可以再b函数的内部加入新的功能。
(注:括号里的参数个人理解为,用来保证原有函数的入口参数不变),
例:打印一个时间

def now():
    print('2021-1-11')
now()
f=now
f()
print(f.__name__)

结果

2021-1-11
2021-1-11
now

加入装饰器
代码:

def log(func):
    def wrapper(*args,**kw):
        print('call %s()' % func.__name__)
        return func(*args,**kw)
    return wrapper
@log
def now():
    print('2021-1-11')
now()
print(now.__name__)

输出

call now()
2021-1-11
wrapper

注:此处的@是装饰器的一种语法,通过最后一行的结果,还可以发现函数的函数名已经悄悄发生改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是不想再当小白的黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值