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的调用

 

 

转载于:https://www.cnblogs.com/lorenjia/p/11100201.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值