Python装饰器@Decorstors的简单使用

目录

Python装饰器

简介

在这里解释一下元编程

 学习装饰器的先决条件

 回到装饰器


Python装饰器

装饰器接受一个函数,添加一些功能并返回它。接下将告诉你如何创建装饰器,以及它的简单使用

简介

在python中有一个比较有趣的的属性,叫做装饰器,可以为现有代码添加功能(也叫元编程),因为程序的一部分试图在编译时修改程序的另外一部分。装饰器就是把一个猴子,塞入炼丹炉,然后就出来一个还是会吃桃子,但有火眼金睛的猴子,还是原来的猴子,但是多了特效技能。

在这里解释一下元编程

在这篇博客里面讲的非常清楚,总结一下就是要理解在python中,一切皆对象,函数也不例外,同时还要理解当中的type魔法。Python黑魔法:元类与元编程 - 杜赛的博客https://www.dusaiphoto.com/article/142/

 学习装饰器的先决条件

 首先要理解这个例子,在这里把abs函数赋给了一个变量,然后这个变量就相当于成为了这个函数了。

 注意,要恢复abs函数,需要重启python交互环境

其实这种将其他函数作为参数的函数在python中也称为高阶函数

 回到装饰器

def decrator(func):
    def inner(a, b):
        print("I have decorated.", a, "and", b)
        return func(a, b)
    return inner
@decrator
def divide(a, b):
    # return a/b
    print(a/b)
# print(divide(2, 1))
decrator(divide(2, 10))

输出:

在这里将@符号与装饰器函数的名称一起使用,并将其放在要装饰的函数的定义之上。就是上面的@decrator,执行过程就相当于用divide代替func。

作用

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜猫程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值