这篇文章主要介绍“python自由变量指的是什么”,在日常操作中,相信很多人在python自由变量指的是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python自由变量指的是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、自由变量是指未绑定到本地作用域的变量。如果自由变量绑定的值是可变的,变量仍然可以在封闭包中操作。如果是不可变的(数字、字符串等。),在封闭包中重新绑定自由变量会出错。
def make_averager(): count = 0 total = 0 def averager(new_value): count += 1 total += new_value return total / count return averager >>> avg = make_averager() >>> avg(10) Traceback (most recent call last): ... UnboundLocalError: local variable 'count' referenced before assignment
2、为了将变量标记为自由变量,可以使用nonlocal语句进行声明,nonlocal语句可以解决。
def make_averager(): count = 0 total = 0 def averager(new_value): nonlocal count, total # 声明count、total为自由变量 count += 1 total += new_value return total / count return averager
最新评论