不要因为一时的失败和挫折,就忘记以往壮志满满说过要去的远方。人皆有爱生恶死之心,人皆为舍生取死之道。何也见善不明耳。
myVar = 1def myfunc():
myVar += 1myfunc()
会提示错误:
UnboundlocalError: local variable 'myVar' referenced before assignment
Python提出如下假设:如果在函数体内的任何地方对变量赋值,则Python将名称添加到局部命名空间中。
语句myVar += 1对名称myVar赋值,则myVar是函数myfunc的局部命名空间的一部分,而它当前没有关联值,所以会产生错误。
解决方法:使用global语句
myVar = 1def myfunc():
global myVar
myVar += 1myfunc()
附作用域搜索规则:
L:本地的(Local)
E:封闭的(Eclosing)
G:全局的(Global)
B:内置的(Built-in)
到此这篇关于python局部赋值的规则就介绍到这了。对于人生道路上的第一次选择,我从未后悔过,觉得有为的选择虽然是一种牺牲,可这种牺牲值得。更多相关python局部赋值的规则内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!