码迷,mamicode.com
首页 > 编程语言 > 详细

python-函数&高阶函数&嵌套函数&装饰器

时间:2019-06-28 00:29:45      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:不能   改变   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的调用

 

 

python-函数&高阶函数&嵌套函数&装饰器

标签:不能   改变   pytho   ret   his   str   pre   sleep   name   

原文地址:https://www.cnblogs.com/lorenjia/p/11100201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!