一个函数如果接收一个函数作为参数, 就是高阶函数.
其实高阶函数还有一种形式就是也可以把函数作为返回值返回
def foo():
x = 10
def temp():
nonlocal x
x += 10
return x
return temp
f = foo()
print(f())
print(f())

说明:
调用
foo()得到的一个函数, 然后把函数赋值给变量f, 这个时候f和foo内部的temp其实指向了同一个函数对象.返回的函数每调用一次都会把
foo的局部变量x增加 10 .所以两次调用分别得到 20 和 30.返回访问了外部函数的局部变量或者全局变量的函数,这种函数就是闭包.