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()
相关推荐
洛兮银儿几秒前
爬虫,如何查找一个网页的header请求头?
python
阿蒙Amon1 分钟前
C#常用类库-详解Ecng.Collections
开发语言·c#·ar
m0_528174451 分钟前
C++中的策略模式实战
开发语言·c++·算法
计算机安禾4 分钟前
【C语言程序设计】第30篇:指针与字符串
c语言·开发语言·c++·算法·visualstudio·visual studio code·visual studio
信奥胡老师4 分钟前
GESP 2026年3月C++三级(二进制回文串)
开发语言·c++·算法
add45a8 分钟前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
Allen_LVyingbo9 分钟前
GTC2026前瞻(二)Agentic AI 与开源模型篇+(三)Physical AI 与机器人篇
开发语言·人工智能·数学建模·机器人·开源·知识图谱
liuyao_xianhui11 分钟前
动态规划_最长递增子序列_C++
java·开发语言·数据结构·c++·算法·链表·动态规划
Pyeako11 分钟前
大模型--OpenAI&创建阿里云百炼API Key
python·阿里云·大模型·云计算·openai·qwen·api key
m0_7432974212 分钟前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python