Python高级教程之装饰器
来源:互联网 发布:怎么查看淘宝会员等级 编辑:程序博客网 时间:2024/05/22 16:39
注意点:
def w1(func):
print("---正在装饰1---")
def inner():
print("---正在验证权限1---")
return inner
def w2(func):
print("---正在装饰2---")
def inner():
print(---正在验证权限2---)
return inner
只要Python解释器执行到了这个代码,那么会自动进行装饰,而不是等到调用的时候财装饰@w1
@w1
@w2
def f1():
print("---f1---")
#在调用f1之前,已经进行装饰了
f1()
先开辟了两片内存空间,分别指向w1和w2
w2先对f1()进行装饰(等价于f1=w2(f1)),f1也对开辟了一块内存,指向f1
先到w2执行,把f1传给func,f1指向谁,此时w2中的func就指向谁,此时指向f1对应的那块内存,打印正在装饰2
在w2中,return inner f1原本指向对应的空间,现在f1=w2(f1),则指向inner对应的函数
再执行,@w1(f1=w1(f1))f1传给func,f1指向谁,此时func就指向谁,此时指向w2中的inner,打印正在装饰1
再w1中return inner f1原本指向w2中的inner,现在f1=w2(f1),则指向inner对应的函数
f最后一句,f1指向谁,就执行谁里面的代码,先执行w1中inner 打印正在验证权限1
后面接着func,指向w2中的inner,打印正在验证权限2,后面接着func,指向原f1 打印----f1----
阅读全文
0 0
- Python高级教程之装饰器
- Python高级编程之装饰器
- python之装饰器
- Python之装饰器
- Python高级教程之私有化
- python高级编程-装饰器学习笔记
- python -- 装饰器的高级应用
- 从0开始学quantum之1:Python高级特性--装饰器
- Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)
- Python 之 decorator装饰器
- Python 之 decorator 装饰器
- python学习之装饰器
- Python学习之装饰器
- python系列之 - 装饰器
- python之装饰器模式
- Python之装饰器函数
- python之装饰器decorator
- Python进阶之装饰器
- 如何正确地写出单例模式
- 多维透视表 – 矩表实现商品销售对比统计
- Js_Dom(7)__Dom基础<Dom的12种节点(转载)>
- Mask R-CNN
- U-Boot的内存分布图
- Python高级教程之装饰器
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
- 分布式事务的解决方案
- 转载Windows下git.text的安装
- apache如何使一个IP地址绑定别的域名
- JAVA之容器
- 【案例分享】电力设备生产数据的多层分组统计报表实现
- Spring Boot集成lombok让代码更简洁
- MySQL:常用基本SQL语句小结