Python装饰器的应用

    Python 中的装饰器是一种语法糖,可以在运行时,动态的给函数或类添加功能。装饰器本质上是一个函数,使用 @ + 函数名就是可实现绑定给函数的第二个功能 。它的作用就是在不修改被装饰对象源代码和调用方式的前提下为被装饰对象添加额外的功能。

    普通调用的写法,把 my_func 作为 calc() 的参数直接调用。

javascript 复制代码
def my_func():
    print('Hello World')

def calc(func):
    y = 3 + 5
    func()
    print(y)

calc(my_func)

    考虑到当要增加某些功能时,导致相关的调用都要修改,这时装饰器就起到作用了。

javascript 复制代码
def calc(func):
    def pack():
      y = 3 + 5
      func()
      print(y)
    return pack

@calc
def my_func():
    print('Hello World')

my_func()
相关推荐
春涧草茶3 分钟前
慢就是快16-1协程
开发语言·前端·python
5233AI开发笔记40 分钟前
API 返回 429:先区分限速、并发和配额,再决定是否重试
python
Dovis(誓平步青云)40 分钟前
启元 T1 Pro 人机相声搭档:语音-触摸双通道的启元机器人节奏引擎设计
开发语言·前端·javascript·microsoft·交互
databook40 分钟前
经常听到的透视表是干什么的?
python·数据分析·pandas
做科研的周师兄43 分钟前
【R语言实战】MixSIAR 氢氧同位素水源解析全流程:从混合空间校验到贝叶斯 MCMC 收敛诊断(后附完整代码)
java·大数据·开发语言
特立独行的猫A1 小时前
我用仓颉写了个多平台发文工具:一份 Markdown,一条命令发六个平台
java·后端·python
陆陆陆六1 小时前
# 五个AI引擎的答案采集:反爬、去重与时间窗对齐的三个工程细节
python·net·ai答案采集
.痞老板.2 小时前
java ee--计算机是如何工作的
java·开发语言·java-ee
奇树谦2 小时前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
青梅味猪大肠2 小时前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统