python_59_装饰器2

本文介绍了Python中匿名函数的应用实例,并通过具体代码演示了如何使用高阶函数为已有函数添加额外的功能,如记录运行时间等。
#匿名函数,无函数名
calc=lambda x:x*3
print(calc(3))

sum=lambda x,y,z:x+y+z
print(sum(1,2,3))

'''
高阶函数
    a:把一个函数名当做一个实参传递给另一个函数(在不修改被饰函数源代码的情况下为其添加功能)
    b:返回值包含函数名(不修改函数的调用方式)
'''
def bar():
    print('in the bar')
def test(func):
    print(func)
    #func()
test(bar)#结果:bar的内存地址<function bar at 0x01DFCC90>
print(bar)

import time
def bar1():
    time.sleep(2)
    print('in the bar1')
def test1(func):
    start_time=time.time()
    func()#运行bar1()
    stop_time=time.time()
    print('the func run time is %s'%(stop_time-start_time))
test1(bar1)

import time
def bar2():
    time.sleep(1)
    print('in the bar2')
def test2(func):
    print(func)#打印的是func的内存地址
    print(func())#调用函数func,并且打印func函数的返回值
    return func#返回func的内存地址
t=test2(bar2)#将test2函数的返回值赋值给t,即将bar2的内存地址赋给t
t()#运行bar2函数
bar2=test2(bar2)#bar2被重新赋值
bar2()

  

转载于:https://www.cnblogs.com/tianqizhi/p/8372396.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值