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

Python中的局部变量和全局变量的使用

发布时间:2023-09-24 02:49:37

在Python中,变量的作用域分为局部变量和全局变量。

局部变量是在函数内部声明的变量,只能在函数内部访问。当函数执行结束后,局部变量的作用域也随之结束,变量将会被销毁。在函数内部,我们可以使用关键字 global 来声明一个变量为全局变量,这样就可以在函数内部改变这个变量的值。举个例子:

def my_function():
    x = 10  # 局部变量 
    print(x)

my_function()  # 输出10
print(x)  # 报错,因为x是局部变量,不在函数外部的作用域内

全局变量是在函数外部声明的变量,可以在整个程序中的任何地方访问。全局变量可以在函数内部使用,但是如果在函数内部试图改变全局变量的值,需要使用 global 关键字来声明。举个例子:

x = 10  # 全局变量

def my_function():
    global x  # 使用global关键字声明x为全局变量
    x = 20
    print(x)

my_function()  # 输出20
print(x)  # 输出20,因为x是全局变量

需要注意的是,在函数内部使用全局变量时,可以直接使用变量名,不需要使用 global 关键字。但是在改变全局变量的值时,必须使用 global 关键字声明。

另外,如果在函数内部声明了与全局变量同名的变量,那么这个变量将会被视为局部变量,即使在函数内部并没有使用 global 声明。举个例子:

x = 10  # 全局变量

def my_function():
    x = 20  # 局部变量,与全局变量同名
    print(x)  # 输出20

my_function()
print(x)  # 输出10,因为在函数内部使用了同名的局部变量并未改变全局变量的值

这就是Python中局部变量和全局变量的使用。在函数内部使用局部变量可以有效地控制变量的作用范围,避免命名冲突,而全局变量则可以在整个程序中共享数据。在函数中修改全局变量的值时,需要使用 global 关键字声明。