【Python装饰器】位置参数、关键字参数,装饰器可以在不修改原函数的情况下对函数进行扩展

def mul_(a,b):  #mul_为原函数
    return a*b
def sum_(a,b):
    return a+b
def begin_end(old):  #begin_end被称为装饰器,装饰器可以在不修改原函数的情况下对函数进行扩展 
    '''
    用来对其他函数进行扩展,使其他函数可以在执行前打印开始执行,执行后打印结束执行
    '''
    def new_function(*args,**kwargs): # *args装包为元组,**kwargs装包为字典,*args为位置参数,**kwargs为关键字参数
        print("开始执行")
        result=old(*args,**kwargs)  # *args拆包为位置参数传入,**kwargs拆包为关键字参数传入
        print("结束执行")
        return result
    return new_function
f=begin_end(mul_)
r=f(123,456)
print(r)

@begin_end
def sub_(a,b,c): #混合传参时,关键字参数必须在位置参数之后
    print(a-b-c)
sub_(23,c=1,b=2)

输出结果为:

开始执行
结束执行
56088
开始执行
20
结束执行

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值