首页 >

python报UnboundLocalError是为什么 – python – 前端,python 字串 转 数字

python与数据库,python 字符串删除指定字符,python编译参数,容器类型代码python,python是解释型脚本,python afunix,python expat,python eval(input),python中pipeline,1885页python,python 字串 转 数字python报UnboundLocalError是为什么 - python - 前端,python 字串 转 数字

举个栗子:

>>> 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


python报UnboundLocalError是为什么 - python - 前端,python 字串 转 数字
  • python编译器和开发环境的区别 - python - 前端,python 发起https请求
  • python编译器和开发环境的区别 - python - 前端,python 发起https请求 | python编译器和开发环境的区别 - python - 前端,python 发起https请求 ...

    python报UnboundLocalError是为什么 - python - 前端,python 字串 转 数字
  • python怎样制作自媒体自动加关注点赞程序 - python - 前端,python3.5 中文乱码
  • python怎样制作自媒体自动加关注点赞程序 - python - 前端,python3.5 中文乱码 | python怎样制作自媒体自动加关注点赞程序 - python - 前端,python3.5 中文乱码 ...

    python报UnboundLocalError是为什么 - python - 前端,python 字串 转 数字
  • 会用到Python吗 - python - 前端,python ascii encod
  • 会用到Python吗 - python - 前端,python ascii encod | 会用到Python吗 - python - 前端,python ascii encod ...