python拥有三大器,装饰器,迭代器和生成器
装饰器其实就是高级函数和嵌套函数的总和,不仅能够减少代码的数量,而且在以后的生产环境,也是必备的一种基本代码技术。
首先现在我会一步一步,从高级函数,嵌套函数,再到装饰器,这样的过程来慢慢向大家详解装饰器。
第一什么是高级函数
变量可以指向函数; 函数的参数可以接收变量; 一个函数可以接收另一个函数作为参数
简单点来说,满足高级函数的条件有两种:
(1)某一函数当做参数传入另一个函数中
(2)函数的返回值包含n个函数,n>0
高级函数怎么用
好,是不是看起来还是有点迷糊。。。。,那我们来看一个例子
1 def test1(): 2 print("this is test1") 3 def test2(fun): 4 fun() 5 print("this is test2") 6 test2(test1)
从例子中可以看到fun函数被作为参数传入到test2函数中,这个就是最简单的高级函数。
第二什么是嵌套函数
在一个函数体内创建另外一个函数,这种函数就叫嵌套函数
嵌套函数怎么用
def foo(): def bar(): print("in the bar") bar() foo()
第三装饰器是什么
在不改变原函数以及原函数的调用的情况下扩展原函数的功能
学了上面两种不同的函数之后,我们来学习装饰器就简单多,因为装饰器就是这两种函数相加而成的。
我们先来看个简单的例子。
import time def deco(f):#将函数作为参数传入,这是高级函数的写法 def wrapper():#里面又多个函数,这是嵌套函数的写法 start_time = time.time() f() end_time = time.time() execution_time = (end_time - start_time)*1000 print("time is %d ms" %execution_time ) return wrapper @deco def f():#新增加的功能 print("hello") time.sleep(1) print("world") if __name__ == ‘__main__‘: f()
原文:https://www.cnblogs.com/HuangJiaPing/p/12372137.html