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()
相关推荐
有同事要进步1 分钟前
LeetCode 14. 最长公共前缀:纵向扫描一次讲透
开发语言·python
修船大队长6 分钟前
CanNm 从休眠唤醒后重复消息报文的周期与数量分析
开发语言·php
事圆则缓6 分钟前
Kotlin 变量与函数:把页面状态和行为写成清楚的契约
android·开发语言·kotlin
XiaoMaqqqq9 分钟前
目前正规的IP驱动产业新场景新工具哪个好
网络·python·网络协议·tcp/ip
cui_ruicheng13 分钟前
FastAPI 应用开发(五)——SQLAlchemy ORM、APIRouter 与 Alembic 数据库迁移
python·fastapi·web
silvamux_17 分钟前
豆包 API 调用教程:Python 接入可跑通示例
开发语言·python
卿卿的产品经理日记18 分钟前
【AI产品经理实战】Day 37|拆开 JSON 与 EXE:数据都有格式
人工智能·笔记·python·json·产品经理
wdfk_prog35 分钟前
LWIP教程 15:IPv4 与 IPv6——从网络层工作原理到嵌入式工程取舍
运维·开发语言·网络·笔记·学习·智能路由器·ip
棉猴40 分钟前
玩游戏学Python10-算术运算符应用2
开发语言·python·玩游戏·游戏编程
tachibana21 小时前
Go 语言的 Map 是否是并发安全的?
开发语言·数据结构·后端·golang·go·语言