装饰器

装饰器


  • 在不修改原来的函数的情况下,用来对其他函数进行扩展。

  • 在开发中,我们都是通过装饰器来扩展函数的功能的。

  • 这样做不会违反开闭原则(ocp) 程序的设计:要求开发对程序的扩展,要关闭对程序的修改

def func(a,b):
    return a-b


def decoration(old_func):
    # *args接收所有的位置参数、**kwargs接收所有的关键字参数
    def new_func(*args, **kwargs): 
        print('a和b的差为')
        #把位置参数拆包放进一个元组,或者把关键字参数放进一个字典
        result = old_func(*args, **kwargs)
        return result

    return new_func

f=decoration(func)
# r =f(6,9)
# print(r)
print(f(6,9))



>>a和b的差为
  -3
    
    
#也可以这么写
@decoration
def func(a,b):
    return a-b
print(func(3,9))

>>a和b的差为
  -6



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值