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

Posted lorenjia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-函数&高阶函数&嵌套函数&装饰器相关的知识,希望对你有一定的参考价值。

学习随笔:

简单介绍:

函数:函数即变量
高阶函数: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-函数&高阶函数&嵌套函数&装饰器的主要内容,如果未能解决你的问题,请参考以下文章

函数式编程 & Python中的高阶函数map reduce filter 和sorted

高阶函数&异常处理

高阶组件&&高阶函数

5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器

Python函数作用域嵌套函数闭包函数高阶函数及装饰器的理解

Python基础高阶函数+函数嵌套+闭包 ==装饰器