这篇文章主要是简单了解一下python中的闭包。
闭包包含自由(未绑定到特定对象)变量;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。
百度百科
简单的说,函数可以引用自己所处作用域的自由变量,并且被引用的自由变量将与这个函数共同存在。
|
|
其结果为 你好,小明,可以看到test中i的生命周期得到了延长。
这种内部函数访问外部函数变量,就是闭包。
但是在使用闭包的过程中要特别注意谨慎使用外部函数的循环变量,否则容易出现错误。
|
|
其结果均为3,这是因为函数没有立即执行,而是到了ans[0](1)时才调用,而这个时候i已经变成了2,所以最终这两个答案都是3。