python 学习之路(装饰器)
2017-12-17 00:10
465 查看
python 学习之路(装饰器)
装饰器其实也是函数,即装饰其他的函数原则:
1. 不能修改被装饰的函数的源代码
2. 不能修改被装饰的函数的调用方式
先感受一下装饰器
import time def b(func): def c(*args , **kwargs): start_time = time.time() func(*args,**kwargs) end_time = time.time() print('this is time is %s' %(end_time-start_time)) return c @b # 装饰器想给哪个函数用,就在这个函数上直接写@+装饰器函数的名字 def a (): print('start') time.sleep(2) print('end.') a() # 打印: # start # end. # this is time is 2.001328468322754
可以看出上方的b函数里面嵌套一个c函数
扫盲:
1. 高阶函数:就是参数为函数;
2. 嵌套函数:就是函数里面在定义一个函数;
3. 装饰函数:就是 高阶函数+嵌套函数
看上去很简单,但是还是需要多加练习
import time # 装饰器 def b(func): def c(*args , **kwargs): # 传递参数,有则传,没有就不传 start_time = time.time() func_1 = func(*args,**kwargs) # 有就接收,没有就不接收 end_time = time.time() print('this is time is %s' %(end_time-start_time)) return func_1 # 将函数返回 return c @b def a (): print('start a') time.sleep(2) print('end a') return '我就是我,不一样的烟火' @b def a1(name): print(name) print('end a1') print(a()) a1("dd")
打印:
start a
end a
this is time is 2.000760316848755
我就是我,不一样的烟火
dd
end a1
this is time is 0.0
相关文章推荐
- Python学习之路6 - 装饰器
- Python学习之路-初学篇之初识装饰器
- python学习之路 六 :装饰器
- python学习之路-4 内置函数和装饰器
- 从 Python到Tensorflow 学习之路(三)
- 王亟亟的Python学习之路(10)-匿名函数
- 从 Python到Tensorflow 学习之路(二)
- python小白学习之路啊
- AI 学习之路——轻松初探 Python 篇(二)
- Python小白学习之路(四)——第一次练习题
- Python学习之路---Python迭代器与生成器
- FireFly开发之路(二)python学习二
- Python学习之路 (一)开发环境搭建
- Python学习之路之一
- 我的Python学习之路之基本语法-面向对象编程
- 我的python学习之路——字符编码与二进制
- Python学习之路-初学篇之初识python(一):
- 【Python学习之路】My second journey
- Python 学习之路(二)
- Python+MySQL学习之路:一、为Windows下python2.7安装MySQLdb模块