从表现形式上定义为:如果在一个内部函数如下面代码中的funY函数
对其外部作用域funX函数
进行变量(x
)引用,那么我们说这个内部函数funY
就是一个闭包.
def funX(x):
def funY(y):
return x * y
return funY
上面函数 funX
的返回值为一个function对象,可以以funX(8)(5)
这种方式调用.
注意:与在函数里引用全局变量时需要加关键字global
一样,在内部函数里要引用外部函数的变量我们则使用nolocal
关键字.
def funX():
x = 25
def funY():
nolocal x
x += 1
return x
return funY()
网友评论