Python的函数闭包与装饰器2-高阶函数的使用

高阶函数定义:

1.函数接收的参数是一个函数名

2.函数的返回值是一个函数名

3.满足上述条件任意一个,都可称之为高阶函数

1.函数接收的参数是一个函数名

import time
def foo():
    time.sleep(3)
    print('你好啊林师傅')

def test(func):
    # print(func)
    start_time=time.time()
    func()
    stop_time = time.time()
    print('函数运行时间是  %s' % (stop_time-start_time))
# foo()
test(foo)

在这里插入图片描述

def foo():
    print('from the foo')
def test(func):
    return func
res=test(foo)
# print(res)
res()
foo=test(foo)
# # print(res)
foo()

源代码

import time
def foo():
time.sleep(3)
print(‘来自foo’)

不修改foo源代码,不修改foo调用方式为前提使用高阶函数

1.多运行了一次,不合格(foo函数运行两次)

def timer(func):
    start_time=time.time()
    func()
    stop_time = time.time()
    print('函数运行时间是  %s' % (stop_time-start_time))
    return func
foo=timer(foo)
foo()

没有修改被修饰函数的源代码,也没有修改被修饰函数的调用方式,但是也没有为被修饰函数添加新功能,仍然不合格

def timer(func):
    start_time=time.time()
    return func
    stop_time = time.time()
    print('函数运行时间是  %s' % (stop_time-start_time))
foo=timer(foo)
foo()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值