📜  Python中的全局变量和局部变量(1)

📅  最后修改于: 2023-12-03 15:34:26.002000             🧑  作者: Mango

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

在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关键字来引用全局变量。