笔记-----Python装饰器

装饰器,见名知意,就是在执行原有的代码块时,在其之前或之后加上一些额外的处理,但是不修改原有的代码块。装饰器可以做到在不修改原有的基础上为其做处理,有点相当于Java中面向切面思想一样。

代码示例

def outer(func):
    def inner(*args,**kwargs):
        print('饭前要有甜点!!给我一杯香草味的冰激凌!')  #原有函数前加装饰
        func(*args,**kwargs) #相当于原有函数
        print('饭后一支烟,赛过活神仙!') #原有函数后加装饰
    return inner  #返回内置函数  ==>  闭包思想

@outer
def eat(*args,**kwargs):  #原有函数
    print('开饭!')
    print(args,kwargs)

L=['主食','汤','菜']
F={'主食':'大米','汤':'十全大补汤','菜':'满汉全席'}

eat(*L,**F)

在上面的代码块中,eat函数上面加了 @outer ,相当于加了outer函数这个装饰器,并没有改变原有代码。相当于把eat函数作为实参传入outer函数内,代替了原有func形参的位置!

运行结果

在这里插入图片描述
用上装饰器,可以在很多场景很方便做你想做的,比如说打印日志之类的非功能性代码;用了装饰器,可谓是赢得生前身后名了!
如果有解释的错的地方,希望大家给出建议,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值