2019年2月23日 装饰器1:高阶函数,函数嵌套

本文深入探讨了高阶函数的概念,包括函数作为参数和返回值的使用,并通过具体代码示例展示了如何利用高阶函数进行时间测量,以及函数的嵌套与闭包特性。

 高阶函数

定义:

1函数接受的参数是一个函数名
2函数返回值是一个函数
3满足1与2任意一个,都称作高阶函数

import time

def test(func):
    #print(func) #打印内存地址
    start_time=time.time()
    func()
    stop_time=time.time()
    print('stop-start:%s'%(stop_time-start_time))

def foo():
    time.sleep(1)
    print("foofoofoo")


test(foo)

 

def foo():
    print('from the foo')
def test(func):
    return (func) #返回函数名

res=test(foo)
print(res)#返回foo的函数地址
res() #运行foo()
import time
def foo ():
    time.sleep(2)
    print('from foo')

def timer(func):
    start_time=time.time()
    func()
    stop_time=time.time()
    print('stop-start=%s'%(stop_time-start_time))
    return func#返回函数

foo=timer(foo)#函数的传递
foo()

运行结果:

from foo
stop-start=2.0005898475646973
from foo

 

多运行一次func

 函数嵌套+闭包

函数中又一次定义函数称作嵌套。

def father(name):
    print('from father %s'%name)
    def son():
        print("from son")
        def grandson():
            print('from grandson')
        grandson()
    print(locals())#打印当前层的局部变量
    son()

father("sxj")

 

转载于:https://www.cnblogs.com/python1988/p/10422430.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值