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
关键字来在嵌套函数中修改外部函数的局部变量。