Python嵌套函数(Nested function)和闭包(closure)
Python允许函数体中定义函数,内部函数(inner function)也称为嵌套函数(nested function)。
为了执行内部函数,必须调用外部函数。 如果不调用外部函数,内部函数将永远不会执行。不能直接调用内部函数,需要先调用外部函数,在调用内部函数,否则出错。
下面给出一个嵌套函数的示例源码:
def outer(x): # 外部函数
print("outer的x:{}".format(x))
def inner(y): # 内部函数
print("inner的y:{}".format(y))
print("x+y={}".format(x+y))
inner(8) #调用内部函数
outer(20) # #调用外部函数
运行测试如下:
典型的闭包(closure)结构