标签:不能 改变 pytho ret his str pre sleep name
学习随笔:
简单介绍:
函数:函数即变量
高阶函数: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的调
2.高阶函数
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执行
3.嵌套函数
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()
4.装饰器
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的调用
python 内置装饰器:@
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的调用
标签:不能 改变 pytho ret his str pre sleep name
原文地址:https://www.cnblogs.com/lorenjia/p/11100201.html