python - Python 嵌套函数中的变量作用域

标签 python function python-3.x scope global-variables

<分区>

第一个代码片段打印出[0, 3]

def func():
    a = [0]

    def swim():
        a.append(3)
        # a = [1]+a
        return a
    return swim()

print(func())

第二个代码片段引发错误“UnboundLocalError:赋值前引用的局部变量‘a’”

def func():
    a = [0]

    def swim():
        # a.append(3)
        a = [1]+a
        return a
    return swim()

print(func())

a 是否对 swim 函数可见/可访问?

最佳答案

这似乎是 this link 中所述的常见问题.原因是 swim 中的变量 a 一旦赋值给 a 就变成了局部变量。它遮蔽了外部的a,而局部的a在函数swim赋值前没有定义,所以错误上升。

感谢大家的回答!

关于python - Python 嵌套函数中的变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37473666/

相关文章:

python - 使用openCV时如何在Google Colab上播放视频?

javascript - 在 JavaScript 中使用数组作为名称对输入元素的值进行计数

Python-OpenCV 查找矩形并裁剪图像

python - 我如何从另一个 python 脚本中获取导入

Python:将 'key:value' 元素的列表解析为 'key' 的字典:值对

python - 在 PyCharm 中使用 Docker Image 作为 Python 解释器

PHP:如何将变量添加到函数名称?

Python - 函数将外部变量设置为用户输入作为副作用

python - 使用draw()而不是eventloop时的pyglet

c# - 在 C# 中调用标量函数