python3 闭包
Posted 我是外婆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 闭包相关的知识,希望对你有一定的参考价值。
# python 中的闭包 n = 10 #定义全局作用域变量 def fn(): #形成闭包 n = 100 #定义局部变量n def inner(): nonlocal n n += 1 #这里定义相同变量n无法调用上层作用中的变量,这里区别于Javascript中当前作用域中如果没有对应变量则会 #则会想上层作用域查找变量,python3中则不会查找 # python3 中新增nonlocal 关键字可以调用上层作用域中的变量 print(n) inner() return inner #返回内嵌函数的地址,从而形成闭包 #形成闭包的条件 #1、必须要有一个内嵌函数 #2、内嵌函数中要对自由变量的引用 #3、外部函数必须返回内嵌函数 t = fn() t() t() print(n)
以上是关于python3 闭包的主要内容,如果未能解决你的问题,请参考以下文章