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")

 

posted @ 2019-02-23 13:38  小圣庄  阅读(109)  评论(0编辑  收藏  举报