Python中的多个装饰器装饰一个函数
2024-10-01 07:55:19
def wrapper1(func1):
def inner1():
print('w1 ,before')
func1()
print('w1 after')
return inner1
def wrapper2(func2):
def inner2():
print('w2 ,before')
func2()
print('w2 after')
return inner2
@wrapper2 # f =wrapper2(f) , func2=inner1函数 当执行完func2时, 就带表要去执行inner1, func1() 执行的是真正的原函数.
@wrapper1 # f =wrapper1(f) , func1=f原函数 f()=inner1
def f():
print('in f')
f() # f在这里 被我定义 变量,看下面理解,就ok了.
# 推荐一种方式 ,debug模式.
# 多个装饰器装饰一个函数相当于装饰器函数的嵌套 (相当于把另一个装饰器函数的inner方法作为参数传递给了另一个装饰器函数的形参func接收.) so不明白就看下面吧
最新文章
- Request 和 Response 原理
- Log4Net简单使用
- ProcDump
- 【CodeVS 1004】四子连棋
- delphi读取excel
- Android图片压缩
- DiscreteSeekBar---->;SeekBar的使用
- HTML系列(四):编辑图像
- 实现自己的http server - loop_in_codes - C++博客
- Python基础之迭代器和生成器
- 详解~实现Runnable方法创建线程之为什么要将Runnable接口的子类对象传递给Thread的构造函数
- VIM 使用心得
- tomcat和servlet的关系
- 一起KVM环境下windows7虚拟机异常死机(BSOD)的问题解决
- Oracle sql 优化の常用方式
- char、varchar、nchar、nvarchar特点比较
- android学习七 菜单
- 使用 typescript ,提升 vue 项目的开发体验(1)
- pycharm的todo和fixme标记,标志为今后再做和bug点
- java的nio包的SelectionKey,Selector,SelectableChannel三者的缠绵关系概述
热门文章
- 44.mapping下的数据结构
- PHP AES cbc模式 pkcs7 128加密解密
- dubbo客户端初始化问题
- Efficient ticket lock synchronization implementation using early wakeup in the presence of oversubscription
- Spring MVC-表单(Form)处理示例(转载实践)
- Hardware/Firmware/Software的区别
- SE955 激光扫描头设置 通过SSI串口进行设置
- Android View系统解析(下)
- Sql Server 强制断开数据库已有连接的方法
- HDU-5310-Souvenir(C++ &;amp;&;amp; 简单数学题)