Python闭包(closure)是嵌套函数的一种特殊用法,它允许内嵌函数访问并操作外部函数的变量。实现闭包的几个要点:
- 必须有嵌套的内函数,该内函数必须引用外部函数的变量。
- 将内函数作为返回值返回。
- 返回的内函数仍可访问外函数定义的非全局变量。
示例:
## python www.itzhimei.com 代码
def outer_func():
x = 'Hello'
def inner_func():
print(x)
return inner_func
my_func = outer_func()
my_func() # Prints 'Hello'
解释:
- outer_func()定义了变量x和内嵌函数inner_func()
- inner_func()打印变量x,x不是全局变量
- 将inner_func()作为返回值返回
- inner_func()仍可访问外函数的x
应用:
- 实现数据隐藏和封装
- 避免全局变量的使用
- 定义工厂函数等
闭包是一个非常强大和有用的技术,帮助我们实现一些编程模式。