python装饰器一篇看懂

本文介绍了Python中的装饰器,它是一种基于闭包的实用工具,允许在不修改原有函数代码的基础上增加功能。文章首先解析了闭包的概念,强调其可以访问外部函数变量的特性。然后,通过实例展示了装饰器如何用于在不破坏函数结构的前提下添加如‘去皮’这样的新功能。最后,讨论了类装饰器的使用,指出装饰器的灵活性和代码简洁性。
摘要由CSDN通过智能技术生成

很多同学都看到python代码中函数上有神奇的装饰器,那么什么是装饰器,他又能解决什么问题呢?

实际上装饰器的本质很多同学都已经学过了,那就是闭包。

闭包

python装饰器一篇看懂

闭包简单来说,就是闭包就是能够读取其他函数内部变量的函数(外部函数中嵌套一个内部函数,并引用了外部函数的变量)。可以将闭包的特性总结为三点:

(1)可以外部访问函数内部变量

(2)内部函数可以访问外层函数变量

(3)局部变量可以常驻内存

如上图案例中,在函数A中嵌套一个函数B,并且引用了函数A的变量x,这就是一个简单的闭包。

执行函数时也是按顺序执行,a=A(10)参数10传给A并将B的引用赋值给a,a(5)执行B(5)

需要注意的是返回函数B时不能加括号。

装饰器

装饰器的本质就是一个闭包,而且是更加简单方便的闭包使用方式,可以在不改变原有的函数结构上添加功能。

那么装饰器到底怎么使用呢?

咱们啊从实际使用角度出发,一切的概念和语法都是为了解决问题才出现的,比如甲方现在的需求就是要电子秤显示体重。

image.png

咱就不细写,简化一下,上面n就是体

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值