当前位置: 首页 > news >正文

Python装饰器根本写法

  • 将上述流程进行了包装,就是装饰器
def outer(origin):
    def inner():
        # add code
        res = origin()
        # add code
        return res
    return inner

@outer
def func():
    # code here
    print("func")
    return
  • 被包装的函数的没有参数,可以轻松完成代码,如果有参数,如何处理
def outer(origin):
    def inner(*args, **kwargs):
        # add code
        res = origin(*args, **kwargs)
        # add code
        return res
    return inner

@outer
def func():
    # code here
    print("func")
    return
func(123)
func(123, 456)
func(a = 5, b = 7)
  • 装饰器是基于@语法与函数闭包来实现的效果
  • 经过装饰器修饰过的函数就不再是原始定义的函数了,但调用时是看不出这种效果,给人一种还是在调用原始函数的效果

相关文章:

  • leetcode_位运算 190.颠倒二进制位
  • 8 SpringBootWeb案例(上): 查询【分页功能(分页插件)】、删除、新增、修改
  • 第三章 组件(6)- 事件处理
  • 设计模式 之 工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)(C++)
  • centos服务器巡检脚本
  • Windows逆向工程入门之字符串类型解析与拓展
  • C语言预处理学习笔记
  • Docker Desktop 入门教学
  • python组备赛笔记(基础篇)
  • 从零到一:构建现代 React 应用的完整指南
  • Netty入门详解
  • halcon机器视觉深度学习对象检测,物体检测
  • 自学FOC系列分享--SVPWM和clark 逆变换及代码实战
  • docker从容器中cp到本地、cp本地到容器
  • LabVIEW开发中的电机控制与相机像素差
  • Visual Studio中打开多个项目
  • 【微中子代理踩坑-前端node-sass安装失败】
  • 敏捷开发07:敏捷项目可视化管理-ScrumBoard(Scrum板)使用介绍
  • rust 实例化动态对象
  • IC卡、M1卡及各类卡的原理使用说明
  • 网络游戏用户规模和市场销售创新高,知识产权保护面临哪些挑战?
  • 杨荫凯履新浙江省委常委、组织部部长,曾任中央财办副主任
  • 精准滴灌“种企业”,苏南强县常熟新的进阶密码
  • 讲座预告|大国博弈与创新破局:如何激励中国企业创新
  • 海上生明月,九天揽星河,2025年“中国航天日”主场活动在上海启动
  • 谭秀洪任广西梧州市人大常委会党组书记,此前任北海市委常委