python局部赋值的规则
myVar = 1
def myfunc():
myVar += 1
myfunc()
会提示错误:
UnboundlocalError: local variable 'myVar' referenced before assignment
Python提出如下假设:如果在函数体内的任何地方对变量赋值,则Python将名称添加到局部命名空间中。
语句myVar += 1对名称myVar赋值,则myVar是函数myfunc的局部命名空间的一部分,而它当前没有关联值,所以会产生错误。
解决方法:使用global语句
myVar = 1
def myfunc():
global myVar
myVar += 1
myfunc()
附作用域搜索规则:
L:本地的(Local)
E:封闭的(Eclosing)
G:全局的(Global)
B:内置的(Built-in)
相关文章
python re的findall和finditer的区别详解
这篇文章主要介绍了python re的findall和finditer的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-11-11
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
这篇文章主要介绍了python计算程序开始到程序结束的运行时间和程序运行的CPU时间的三个方法,大家参考使用2013-11-11
Python利用re模块实现简易分词(tokenization)
分词(tokenization)任务是Python字符串处理中最为常见任务了。本文将利用re模块实现简易tokenizer,文中的示例代码讲解详细,需要的可以参考一下2022-04-04


最新评论