Python 装饰器
一、装饰器定义
二、装饰器知识储备
三、高阶函数
1.高阶函数定义:
2.高阶函数的示范
3.高阶函数的总结
四、函数嵌套
五、闭包
Python 装饰器
一、装饰器定义
装饰器本质就是函数,功能是为其他函数添加附加功能
原则:
1)不修改被修饰函数的源代码
2)不修改被修饰函数的调用方式
二、装饰器知识储备
装饰器 = 高阶函数 + 函数嵌套 + 闭包
三、高阶函数
1.高阶函数定义:
函数接受的参数是一个函数名
函数的返回值是一个函数名
满足上述条件任意一个都可以称之为高阶函数
2.高阶函数的示范
把函数当做参数传给高阶函数
import time
def foo():
time.sleep(1)
print('你好刘力菲')
def test(func):
print(func)
start_time = time.time()
func()
stop_time = time.time()
print('函数运行时间是 %s' % (stop_time - start_time))
foo()郑州人流多少钱 http://www.hnmt120.com/
test(foo)
可以看到foo函数又在test函数中执行了一遍
3.高阶函数的总结
函数接受的参数是一个函数名
作用:在不修改函数源代码的前提下,为函数添加新功能
不足:会改变函数的调用方式
函数的返回值是一个函数名
作用:不修改函数的调用方式
不足:不能添加新功能
四、函数嵌套
函数嵌套就是在函数里面在定义函数
def func():
pass
def func1():
pass
def func2():
pass
pass
五、闭包
在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包
例子
def func(a):
aa=11
def func1():
c=a+aa
print(c)
return func1
使用闭包的过程中,一旦外函数被调用一次返回了内函数的引用,虽然每次调用内函数,是开启一个函数执行过后消亡,但是闭包变量实际上只有一份,每次开启内函数都在使用同一份闭包变量
def outer(x):
def inner(y):
nonlocal x
x+=y
return x
return inner
a=outer(100)
print(a(50))
print(a(100))
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。