📅  最后修改于: 2023-12-03 15:34:26.002000             🧑  作者: Mango
在Python编程中,变量分为全局变量和局部变量。全局变量和局部变量都具有自己的作用域范围和生命周期,因此在使用变量时需要特别注意变量的作用范围和可见性。
全局变量指在程序的整个执行期间都是可见的变量,无论在哪个函数中定义,都可以在程序的任何地方引用。
# 定义全局变量
global_var = "global variable"
def func():
# 引用全局变量
print(global_var)
print(global_var) # 输出: global variable
func() # 输出: global variable
上述代码中,我们定义了一个全局变量global_var
,并在函数内部引用了该全局变量。需要使用global
关键字声明该变量为全局变量,否则Python会认为该变量是一个局部变量。
局部变量指在函数内部定义的变量,其作用域范围仅限于该函数内部。局部变量在函数内部定义,函数执行完毕后,变量就被销毁了。
def func():
# 定义局部变量
local_var = "local variable"
print(local_var)
func() # 输出: local variable
print(local_var) # 报错: NameError: name 'local_var' is not defined
上述代码中,我们定义了一个局部变量local_var
,其作用范围仅限于func
函数内部,因此在函数外部无法访问该变量。如果在函数外部引用该变量会导致NameError
异常。
当全局变量和局部变量的名称相同时,函数内部的局部变量会屏蔽全局变量。在函数内部,如果要直接引用全局变量,需要使用global
关键字声明该变量为全局变量。
global_var = "global variable"
def func():
# 定义局部变量
global global_var
global_var = "local variable"
print(global_var)
func() # 输出: local variable
print(global_var) # 输出: local variable
上述代码中,我们在函数内部使用了全局变量global_var
的名称,并且修改了该变量的值。由于函数内部定义了同名的局部变量,因此在函数内部全局变量被屏蔽了,需要使用global
关键字声明该变量为全局变量。函数执行完毕后,全局变量的值也被修改了。
在Python中,全局变量和局部变量具有不同的作用域和生命周期,需要特别注意其作用范围和可见性。在使用全局变量时,需要使用global
关键字声明该变量为全局变量;在函数内部,局部变量会屏蔽全局变量,需要使用不同的变量名或使用global
关键字来引用全局变量。