python装饰器
来源:互联网 发布:算日子软件 ios 编辑:程序博客网 时间:2024/06/05 15:00
装饰器作用类似于java中的AOP,用于处理异常日志等作用时非常好用。
1.闭包:
可以简单把闭包理解为函数中创建函数,内层函数不可以直接调用,只该内层函数的外层函数才可以调用它
def genetater_power(number): def nth_power(power): return number*power return nth_powerraise_two=genetater_power(2)print(raise_two(7))
简单装饰器中return了wrapper,加上括号后其实就相当于执行了wrapper()
def decorater(func): def wrapper(): print("start") func() print("end") return wrapper@decoraterdef mycode(): print("run")mycode()
最外面的参数为func,wrapper括号中的参数是函数的参数。装饰器中可以取到函数的参数,并对其进行操作。
class Picture(): def __init__(self,image_key=None,image_id=None,image_url=None): self.image_key=image_key self.image_id=image_id self.image_url=image_url pic=Picture(123,"pic_1","www.baidu.com")#生成一个对象作为参数def generater(func): def wrapper(*args,**kw):# func(*args,**kw) print(args[0].image_url) return wrapper@generaterdef get_pic(param): print(param)get_pic(pic)
4.带参数的装饰器:
下面的装饰器用装饰器重复执行函数,执行的次数是装饰器的参数。
带参数的装饰器中,装饰器的参数在最外层,第二层的参数还是func,第三层是所要修饰的函数的参数。
def again(i): def decorater(func): def wrapper(*args,**kwargs): for j in range(0,i): func(*args,**kwargs) return wrapper return decorater@again(3)def do_mycode(param): print(param)do_mycode(pic.image_url)
装饰器作用类似于java中的AOP,用于处理异常日志等作用时非常好用。
1.闭包:
可以简单把闭包理解为函数中创建函数,内层函数不可以直接调用,只该内层函数的外层函数才可以调用它
0 0
- python装饰器装饰类
- [python]python装饰器
- Python装饰器学习
- Python装饰器
- python 装饰器
- Python装饰器
- python 装饰器 应用
- python 装饰器2
- Python装饰器学习
- python装饰器
- python装饰器
- python 装饰器入门
- python装饰器
- python装饰器
- python 装饰器'@'
- python装饰器
- Python装饰器详解
- python 装饰器
- Android USB通讯(完整版)
- 线性时间的最大子数组
- BottomNavigationBar简单使用
- C++中输出精度的设定
- 在OpenCV3中实现机器学习算法之:利用最近邻算法(knn)实现手写数字分类
- python装饰器
- 可提高Java开发性能的5款调试工具
- [c] 栈空间和堆空间
- Java.net.SocketException:Connection reset
- 学习 WebGL 的开源库 Three.js
- CF
- (0030) iOS 开发之跳转之转场动画
- Linux系统
- JavaSE day01笔记