Python函数是支持嵌套的。
1.什么是闭包
如果在一个内部函数中对外部函数作用域(非全局作用域)的变量进行引用,那么内部函数就会被称为闭包。
2.python中的闭包需要满足三个条件:
- 闭包函数必须有内嵌函数
- 内嵌函数必须要引用外层函数的变量
- 外部函数会把内部函数的函数名称返回
def outer(a):
b = 3 # outer函数内的变量,非全局
def inner():
print(a+b) # 引用了inner函数外的变量
return inner # 返回内函数的引用
out = outer(3)
print(out())
3.闭包的优点:
- 避免使用全局变量
- 可以提供部分数据的隐藏
- 可以提供更优雅的面向对象实现