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()
相关推荐
wjcroom几秒前
融释涡旋理论-对狭义相对论和洛伦兹变换的兼容
开发语言·前端
大明者省几秒前
Python 程序在 Ubuntu 系统的完整部署流程
开发语言·python·ubuntu
咸甜适中几秒前
rust序列化和反序列化(json、yaml、toml)详解
开发语言·rust·json
智算菩萨1 分钟前
【Tkinter】14 事件处理机制深度解析:从基础绑定到高级传播,构建交互式绘图笔记应用
开发语言·笔记·python·microsoft·ui·ai编程·tkinter
SeatuneWrite1 分钟前
AI漫剧APP2025推荐,创意无限的个性化剧情体验
人工智能·python
财经资讯数据_灵砚智能2 分钟前
全球财经资讯日报(日间)2026年4月1日
大数据·人工智能·python·语言模型·ai编程
東雪木2 分钟前
Java学习——接口 (interface) 与抽象类 (abstract) 的本质区别、选型标准
java·开发语言·jvm·学习·java面试
小和尚敲木头3 分钟前
router.push(‘/‘)跳转不触发重定向
开发语言·前端·javascript
_MyFavorite_4 分钟前
JAVA重点基础、进阶知识及易错点总结(16)多线程基础(Thread & Runnable)
java·开发语言
misty youth4 分钟前
提示词合集【自用】
开发语言·前端·ai编程