Python快速上手系列--装饰器--入门篇

何为装饰器?

装饰器就是给某一个函数或某一个程序,再不改变它原程序的基础上添加其他的功能.用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。

一起来看看下面的小例子:

def one(an):    print("进入装饰器")    def two():        print("装饰器内部")        an()        print("装饰器末尾")    return two@onedef three():    print("我进入装饰器了")three()

上面这个例子,你大可以理解为两个函数结合起来使用。每个人理解的方式不一样,所以大胆想象。one函数就是一个装饰器,我们可以直接把它用@符号引用在three函数上。此外,an()这个可以看作参数,在two函数中位置不同,对应的输出位置就不听,可以放在print("装饰器末尾")后面或者其他位置。

这里其实可以理解为将three函数当作变量,引用到one函数中,然后在two函数中用an()进行调用。最后返回一个函数里面的值。得到的结果就是:

进入装饰器装饰器内部我进入装饰器了装饰器末尾

那么我们接下来看看装饰器的传值

# -->>>托马<<<---def name(age):    print("进入装饰器")    def first_name(a, b):        print(f"名字是:{a}")        age(a, b)        print(f"年龄是:{b}")    return first_name@namedef name1(a, b):    print("报上年龄")if __name__ == '__main__':    name1('托马', 18)# 进入装饰器# 名字是:托马# 报上年龄# 年龄是:18

看这个例子,是不是有点像函数中的位置传参呢。根据上面的小实例,这里理解其实就不难了。

接下来看看另一种,传多个参数

# 传多个参数def name(func):    def infomation(*args, **kwargs):        print(f"姓名:{args[0]}")        print(f"性别:{args[1]}")        print(f"年龄:{args[2]}")        func(*args, **kwargs)    return infomation@namedef input(a, b, c):    print("展示完毕")if __name__ == '__main__':    input('托马', '男', 18)    # 姓名:托马# 性别:男# 年龄:18# 展示完毕

这里部分需要说明,就是取值的问题,这里传多个值进去,如果不用args[值]的这种方式,那么得到的就是整个元组了。此外,*args, **kwargs这个看着是不是很眼熟,这里前面章节函数部分有写到哦。可以回头看看来。

后续也会出一些装饰器的用法。及时关注!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

奔跑的托马

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

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

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

打赏作者

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

抵扣说明:

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

余额充值