一个函数如果接收一个函数作为参数, 就是高阶函数.

其实高阶函数还有一种形式就是也可以把函数作为返回值返回



def foo():
    x = 10

    def temp():
        nonlocal x
        x += 10
        return x

    return temp

f = foo()

print(f())
print(f())

说明:

  1. 调用foo()得到的一个函数, 然后把函数赋值给变量f, 这个时候ffoo内部的temp其实指向了同一个函数对象.

  2. 返回的函数每调用一次都会把foo 的局部变量x增加 10 .所以两次调用分别得到 20 和 30.

  3. 返回访问了外部函数的局部变量或者全局变量的函数,这种函数就是闭包.

Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-02-25 07:12:09

results matching ""

    No results matching ""