python函数全体变量

  • Post category:Python

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关键字声明,并在函数内部直接修改变量值。