python-函数&高阶函数&嵌套函数&装饰器
2020-12-13 03:58
标签:不能 改变 pytho ret his str pre sleep name 学习随笔: 简单介绍: 2.高阶函数 3.嵌套函数 4.装饰器 python 内置装饰器:@ python-函数&高阶函数&嵌套函数&装饰器 标签:不能 改变 pytho ret his str pre sleep name 原文地址:https://www.cnblogs.com/lorenjia/p/11100201.html函数:函数即变量
高阶函数:1.把一个函数名当做一个实参传给一个参数
2.返回值中包含函数名
嵌套函数:函数内部再次定义函数
装饰器:装饰器就是函数,是为了给其他函数添加功能
原则上不能改变被装饰函数的源代码,不能修改装是函数的调用方式
高价函数+嵌套函数=装饰器
代码如下:
1.函数1 #函数
2 def foo(name):#定义一个函数
3 print(‘is this foo name:‘,name)
4 foo(‘FOO‘) #函数foo的调用
5 foo2=foo #函数即变量,将foo作为实参传给foo2
6 foo2(‘FOO2‘) #foo2的调用,即foo的调
1 #高阶函数
2
3 def test(func):
4 start_time=time.time()
5 func()
6 end_time=time.time()
7 print(‘函数func的运行时间:‘,str(start_time-end_time))
8 return func
9 def demo():
10 print("demo_%s开始运行\n睡眠3秒")
11 time.sleep(3)
12 print("demo_%s运行结束")
13 test(demo) #传入函数实参,并执行
14 demo=test(demo) #test(demo)返回一个函数实参给demo
15 demo() #demo执行
1 #嵌套函数
2 def doc():
3 name=‘loren‘
4 def doc1():
5 name=‘loren1‘
6 def doc2():
7 name=‘loren2‘
8 print(‘name:‘,name)
9 doc2()
10 doc1()
11 doc()
1 #装饰器1
2
3 def test(func):
4 def warppr(*args,**kwargs):
5 print(‘可以添加新功能&函数‘)
6 print(‘执行原函数‘)
7 func(*args,**kwargs)
8 return warppr
9 def demo(name):
10 print(‘demo_%s运行结束‘%name)
11
12 demo(‘loren‘) #原函数demo的调用
13 demo=test(demo) #装饰函数demo
14 demo(‘loren2‘) #装饰后函数demo的调用
1 #装饰器2
2 def test(func):
3 def warppr(*args,**kwargs):
4 print(‘可以添加新功能&函数‘)
5 print(‘执行原函数‘)
6 func(*args,**kwargs)
7 return warppr #返回warppr函数的地址
8 @test #@test就相当于demo=test(demo)
9 def demo(name):
10 print(‘demo_%s运行结束‘%name)
11
12 demo(‘loren‘) #装饰后函数demo的调用
文章标题:python-函数&高阶函数&嵌套函数&装饰器
文章链接:http://soscw.com/essay/28668.html