首页后端开发Pythonpython报UnboundLocalError是为什么

python报UnboundLocalError是为什么

时间2023-06-02 03:29:02发布访客分类Python浏览697
导读:python报UnboundLocalError是为什么?举个栗子:>>> x = 10>>> def bar( :... print(x >>> bar( 10作品,但这个代码...

python报UnboundLocalError是为什么?

举个栗子:

> > > x = 10> > > def bar():... print(x)> > > bar()10

作品,但这个代码:

> > > > > > x = 10> > > def foo():... print(x)... x += 1

导致UnboundLocalError:

> > > > > > foo()Traceback (most recent call last): ...UnboundLocalError: local variable 'x' referenced before assignment

这是因为,当您对作用域中的变量进行赋值时,该变量将变为该作用域的局部变量,并在外部作用域中对任何具有相似名称的变量进行遮蔽。由于foo中的最后一个语句赋予一个新值 ,因此编译器将其识别为局部变量。因此,当早期尝试打印未初始化的局部变量并产生错误时。

在上面的例子中,你可以通过声明它是全局的来访问外部范围变量:

> > > > > > x = 10> > > def foobar():... global x... print(x)... x += 1> > > foobar()10

这个显式声明是为了提醒你(不同于类和实例变量的表面上类似的情况),你实际上是在修改外部变量的值:

> > > > > > print(x)11

您可以使用 关键字在嵌套范围内做类似的事情:

> > > > > > def foo():... x = 10... def bar():... nonlocal x... print(x)... x += 1... bar()... print(x)> > > foo()1011

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: python报UnboundLocalError是为什么
本文地址: https://pptw.com/jishu/57664.html
python地图着色问题需要安装什么库 python怎么保留格式写入excel

游客 回复需填写必要信息