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()
相关推荐
2601_962885728 小时前
如何用 Python 自动识别股票的支撑位与压力位?
开发语言·python
爱吃奥利奥_wen8 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
北冥有鱼被烹8 小时前
VCSEL全景解析:与光模块NPO CPO的关系、市场量化分析与产业链影响
python
我可能是个假开发8 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
caoerzhong9 小时前
中小企业上 WMS 该先上哪几块:JeeWMS 开源 Java 仓库管理系统的分批上线清单
java·python·开源
正在走向自律9 小时前
AI数据分析与可视化:从基础到应用实践
服务器·人工智能·python·机器学习·数据分析·pandas
databook10 小时前
从手动检查到自动监控:一个数据质量工作流的实现
后端·python·数据分析
WL学习笔记10 小时前
日期类(C++)
开发语言·c++·日期类实现
谢亮_vipxieliang10 小时前
Go map与结构体的正确使用
开发语言·golang·哈希算法
H.莓飛11 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio