python nonlocal - 为啥有时需要它,有时不需要它

Posted

技术标签:

【中文标题】python nonlocal - 为啥有时需要它,有时不需要它【英文标题】:python nonlocal - why sometimes need it and sometimes not [closed]python nonlocal - 为什么有时需要它,有时不需要它 【发布时间】:2021-11-06 05:52:48 【问题描述】:

我知道为什么我们需要在 Python 中声明 nonlocal 并且对以下示例有点困惑。如果第 276 行中没有 nonlocal records,则第 277 行中的 records 未定义。但是,可以使用第 289 行中的 records 而不会出现任何错误。

以下是非本地的情况,它运行良好。

【问题讨论】:

请不要张贴您的代码图片。见meta.***.com/q/285551 【参考方案1】:

nonlocal 声明类似于global 声明。仅当函数分配给变量时才需要两者。通常,这样的变量将成为函数的局部变量。 nonlocalglobal 声明导致它引用存在于函数外部的变量。

如果一个函数没有赋值给一个变量,那么就不需要声明,它会自动在更高的范围内寻找它。

【讨论】:

以上是关于python nonlocal - 为啥有时需要它,有时不需要它的主要内容,如果未能解决你的问题,请参考以下文章

Python 2.x 中的 nonlocal 关键字

为啥python不允许通过引用传递变量

Python Global和Nonlocal的用法

python nonlocal的理解使用

[TimLinux] Python nonlocal和global的作用

Python3中global/nonlocal用法