跳到主要内容

Python中的局部变量和全局变量是什么?

参考答案:

在Python中,变量可以有两种类型:局部变量和全局变量。这两种类型的变量有着不同的作用域和生命周期。

局部变量

局部变量是在函数内部定义的变量。这些变量只能在定义它们的函数内部访问。当函数执行完毕后,这些变量就会被销毁。这意味着在函数外部无法访问这些变量。

def my_function():
    local_var = "I am a local variable"
    print(local_var)

my_function()  # 输出 "I am a local variable"

# 尝试在函数外部访问局部变量
print(local_var)  # 报错:NameError: name 'local_var' is not defined

全局变量

全局变量是在函数外部定义的变量。这些变量可以在程序的任何地方访问。这意味着在函数内部和外部都可以访问这些变量。

global_var = "I am a global variable"

def my_function():
    print(global_var)

my_function()  # 输出 "I am a global variable"

print(global_var)  # 输出 "I am a global variable"

需要注意的是,在函数内部,如果你尝试修改一个全局变量的值,Python会默认认为你在创建一个新的局部变量,除非你明确地告诉Python你想要修改的是全局变量。你可以使用global关键字来在函数内部声明一个变量是全局的。

global_var = "I am a global variable"

def my_function():
    global global_var
    global_var = "I am changed"

my_function()

print(global_var)  # 输出 "I am changed"

此外,还可以使用nonlocal关键字来在嵌套函数中修改外部函数的局部变量。