欢迎访问宙启技术站
智能推送

Python函数:如何使用局部变量和全局变量

发布时间:2023-06-10 05:41:50

在 Python 中,变量的作用域分为局部变量和全局变量。局部变量是在某个函数内部定义的变量,其作用范围只在该函数内部;而全局变量则是在所有函数外部定义的变量,其作用范围为整个程序。

这篇文章将介绍 Python 函数中如何使用局部变量和全局变量。

## 使用局部变量

在 Python 函数中,我们可以通过在函数内部定义变量来创建一个局部变量。如下所示:

def foo():
    x = 10
    print(x)

在这个函数 foo 中,我们定义了一个局部变量 x,其作用范围只在函数内部。

当函数被调用时,该局部变量就会被创建出来并赋值。在例子中,x 被赋值为 10 并通过 print 函数打印出来。

需要注意的是,局部变量只能在函数内部使用。如果我们在函数外部调用该变量,会引起一个 NameError:

def foo():
    x = 10

print(x)  # 错误:NameError: name 'x' is not defined

因为 x 只有在函数内部的作用域中才有定义,外部无法访问。

## 使用全局变量

在 Python 中,我们可以通过在函数外部定义变量来创建一个全局变量。如下所示:

x = 10

def foo():
    print(x)

foo()  # 输出 10

在这个程序中,我们在函数外部定义了一个变量 x,其作用范围为整个程序。在函数 foo 中,我们可以直接访问该变量,并使用 print 函数将其打印出来。

需要注意的是,全局变量可以在函数内部被访问和修改。如果我们在函数内部修改了该变量,那么它会在函数外部被改变:

x = 10

def foo():
    global x
    x = 20

foo()

print(x)  # 输出 20

在这个例子中,我们使用 global 关键字告诉 Python 我们要访问外部的全局变量 x。接着,我们在函数内部将 x 修改为 20。

当调用函数后,我们发现 x 的值已被改变,输出结果为 20。

需要注意的是,如果我们在函数内部定义了一个与全局变量同名的局部变量,那么局部变量会覆盖掉全局变量。如下所示:

x = 10

def foo():
    x = 20
    print(x)

foo()  # 输出 20
print(x)  # 输出 10

在这个例子中,我们在函数内部定义了一个与全局变量 x 同名的局部变量。在调用函数后,我们发现输出结果为 20,这是因为我们访问的是局部变量 x。

当我们在函数外部再次访问全局变量 x 时,它的值还是原来的值 10。

## 总结

在 Python 函数中,我们可以通过定义局部变量和全局变量来存储程序中的数据。在使用局部变量时,需要注意作用范围只在函数内部;而在使用全局变量时,需要注意可以在函数内部被访问和修改,但如果定义了与局部变量同名的局部变量,会覆盖掉全局变量。