变量作用域在Python函数中如何工作?

当我们为它分配一些值时,便在Python中定义了一个变量。我们不会像使用C语言和其他语言那样预先声明它。我们只是开始使用它。

x = 141

我们在文件或模块的顶层声明的任何变量都在全局范围内。我们可以在函数内部访问它。

变量应具有完成其工作所需的最窄范围。

示例

在给定的代码中

x = 141
def foo():
    x = 424 #local variable
    print x
foo()
print x

输出结果

424
141

说明

当我们在foo内部将x赋值424时,实际上是在该函数的局部范围内声明了一个称为x的新局部变量。x与全局范围内的x绝对没有关系。函数结束时,该值424的变量不再存在。因此,当执行第二个print x语句时,将打印x的全局值。

如果要在局部范围内维护变量的全局值,则在代码中按以下方式使用global关键字。

示例

x = 141
def foo():
    global x
    x = 424
    print(x)
foo()
print(x)

输出结果

424
424