Python 装饰器的形成过程
2017-04-03 18:53
155 查看
装饰器
定义:本质是函数,(装饰其他函数),即为其他函数添加附加功能。
原则: 1、不能修改被装饰的函数的源代码;
2、不能修改被装饰的函数的调用方式。
实现装饰器知识储备:
1. 函数即'变量'
2. 高阶函数
a. 把一个函数名当作实参传递给另一个函数(在不修改被装饰函数源代码的前提下为其添加新功能)
b. 返回值中包含函数名(不修改函数的调用方式)
3. 嵌套函数
高阶函数 + 嵌套函数 (组成)--> 装饰器
1、必备
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: antcolonies '''第一波''' def foo(): print('in the foo') foo # 函数名,相当于变量 print(foo) # <function foo at 0x0000000001CFCBF8> 变量的索引地址 foo() # in the foo 执行/调用函数foo '''第二波''' def foo(x): print('in the foo_%d' %x) foo = lambda x:x+1 print(foo) print(foo(1)) # 执行下面的lambda表达式,而不再是原来的foo函数,因为函数 foo 被重新定义了 ''' <function foo at 0x0000000001CFCBF8> in the foo <function <lambda> at 0x0000000001CFCBF8> 2 '''
2、需求来了
初创公司有N个业务部门,1个基础平台部门,基础平台负责提供底层的功能,如:数据库操作、redis调用、监控API等功能。业务部门使用基础功能时,只需调用基础平台提供的功能即可。如下:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author: antcolonies 4 5 import functools 6 7 def outer(func): 8 @functools.wraps(func) 9 def inner(*args, **kwargs): 10 print(inner.__doc__) 11 return func() 12 return inner 13 14 @outer 15 def function(): 16 """ 17 decorator 18 asdfasd 19 :return: 20 """ 21 print('func') 22 23 function() 24 25 ''' 26 27 decorator 28 asdfasd 29 :return: 30 31 func 32 '''含元信息
相关文章推荐
- Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)
- python装饰器的执行过程
- Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)
- Python装饰器的执行过程实例分析
- Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)
- Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)
- PYQT4 + Python2.6 + eric4-4.2.2a的安装全过程
- Python: 使用装饰器“@”取得函数执行时间
- 形成刺猬理念的过程
- Python中的Decorator(装饰器)模式
- Python开发工具:Wing IDE (含详细注册过程)
- Python的开发插件PyDev在Eclipse下的安装过程(解决mylyn的问题in Windows)
- 链路状态路由协议OSPF形成路由表的过程
- 从引导扇区到内核——操作系统雏形形成过程的总结
- (转)一个显示排序过程的Python脚本
- PYQT4 + Python2.6 + eric4-4.2.2a的安装全过程
- OSPF邻接形成过程
- 道氏理论的形成过程
- 一个显示排序过程的Python脚本
- python程序的执行过程