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()
相关推荐
isfox1 分钟前
Python3 协程:异步编程的核心机制与实战
python
lhbweilai3 分钟前
QT项目(串口助手)
开发语言·qt
用户298698530148 分钟前
Python 将 Markdown 批量转为 HTML:单文件与目录遍历两种实现
python·html·markdown
miofly8 分钟前
GitHub 今日推荐|auto-ontology:给 Agent 装上企业数据的语义索引
python·开源·github
eggwyw10 分钟前
C++相交链表和反转链表详解
开发语言·c++
Wang's Blog15 分钟前
Java 项目实战:交友项目 - 保存访客记录
java·开发语言·交友
青少儿编程课堂36 分钟前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园成语接龙大挑战解析
c++·python·算法·bfs·信息学竞赛
用户03321266636739 分钟前
使用 Python 扁平化 PDF 文档 【附代码示例】
python
Java后端的Ai之路39 分钟前
Java并发编程07-等待通知机制优化循环等待
java·数据库·python
小小张说故事40 分钟前
Python 的 async def 为什么能同时跑几千个任务?拆开协程对象、await 与事件循环那次让出
后端·python