1. 程式人生 > >python 中高階函式和巢狀函式

python 中高階函式和巢狀函式

 1、高階函式:變數可以指向函式;

                        函式的引數可以接收變數;

                        一個函式可以接收另一個函式作為引數;

2、我們看下面例項

import time

def test1():
    time.sleep(3)#睡眠3秒
    print('this is test1')
    return test1


def test2(func):#func = test1
    print('this is test2')
    start_time = time.time() #開始的時間戳
    func()  #func() = test1()實際上是呼叫test1()
    end_time = time.time()#結束的時間戳
    print('this func is running %s' % (end_time-start_time))#這裡是test1函式的執行時間
    return func #返回的其實是test1的記憶體地址

res = test2(test1)
print(res)

3、巢狀函式

        python程式,一個函式在另外一個函式的裡面,外層的函式返回的是裡層函式。也就是函式本身被返回了,返回的是函式(聽起來和C語言的一些東東相似)。

下面我們看一個簡單的巢狀函式:

def test1():
    def test2():
        print('this is test2')

如何呼叫呢?