【Python】对语法糖和装饰器的理解

(小白初学,有错勿怪)

对语法糖和装饰器的理解:

语法糖将目标函数传入另一个函数并调用,被传入函数要求拥有至少一个参数,
目标函数将被重新赋值为被传入函数调用后的返回值,但不一定也为函数。

而装饰器为对目标函数添加功能,并保持原函数功能不变。
则要求在语法糖的基础上,被传入函数为闭包(即该函数传入的为一个函数,返回的也是一个函数。),也即原目标函数被赋值为一个新函数。
在新函数内,要求通过外层函数的参数调用原目标函数,
且返回的函数定义在被传入函数内,返回的函数参数个数与目标函数相同或使用*args, **kwargs则更加通用。

def func1(func2): # 被传入函数
    def func3(var1): # (新函数)目标函数被重新赋值为这个函数。
        pass
        return func2(var1) 
        # 装饰器一定有调用原函数这一句,但不一定在函数体内,它也可以在返回值上,
        # 因为根据保持原功能不变,原函数若有返回值则应保持一致。
    return func3

@func1 # 语法糖
def func4(var1): # 目标函数
    print(var1)
    return var1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值