Python中的全局变量指在函数以外声明的变量,在函数内部也可以访问和修改它们。但是,如果在函数内部声明一个与全局变量同名的变量,则该变量将成为一个局部变量。因此,在处理全局变量时需要格外注意。
声明全局变量
声明全局变量需要在函数体之外完成,例如:
my_global_variable = "Hello!"
访问全局变量
在Python中,全局变量可以在函数中随意访问:
my_global_variable = "Hello!"
def print_global_variable():
print(my_global_variable)
print_global_variable() # 输出:Hello!
在函数内部访问全局变量时不需要使用关键字global
。
修改全局变量
如果在函数中修改全局变量的值,需使用关键字global
来声明变量:
my_global_variable = "Hello!"
def change_global_variable():
global my_global_variable
my_global_variable = "Hello, World!"
change_global_variable()
print(my_global_variable) # 输出:Hello, World!
在函数内部如果使用与全局变量同名的变量,则该变量将成为局部变量,不会修改全局变量的值。
案例1:全局变量的错误使用
在下面的例子中,通过调用modify_global_var()
函数想要修改全局变量my_global_variable
的值,但由于在函数体内将其与局部变量重名,导致实际上只修改了局部变量的值,对全局变量没有实际影响。
my_global_variable = "Hello!"
def modify_global_var():
my_global_variable = "Goodbye!"
print(f"Inside the function: {my_global_variable}")
modify_global_var() # 输出:Inside the function: Goodbye!
print(f"Outside the function: {my_global_variable}") # 输出:Outside the function: Hello!
案例2:全局变量的正确使用
下面的例子中,使用global
关键字将变量my_global_variable
声明为全局变量,并在函数体内修改其值,使得实际上修改了全局变量的值。
my_global_variable = "Hello!"
def modify_global_var():
global my_global_variable
my_global_variable = "Goodbye!"
print(f"Inside the function: {my_global_variable}")
modify_global_var() # 输出:Inside the function: Goodbye!
print(f"Outside the function: {my_global_variable}") # 输出:Outside the function: Goodbye!
综上所述,全局变量在函数内的使用需要注意变量名与函数内部变量不要重名,如果要修改全局变量的值需要在函数内使用global
关键字声明,并在函数内部直接修改变量值。