Python中,全局变量是在整个程序中都可以访问的变量,可以在函数内部和外部进行访问和修改。在Python中定义全局变量时,需要使用global关键字进行声明。
一、Python全局变量定义
global_var = 10 def test_global(): print("全局变量global_var的值为:", global_var) test_global()
输出结果为:
全局变量global_var的值为: 10
在函数外定义一个全局变量global_var,然后在函数test_global中通过global_var来访问和输出全局变量的值。
二、Python全局变量和局部变量
global_var = 10 def test_local_global(): local_var = 20 global_var = 30 print("局部变量local_var的值为:", local_var) print("局部变量global_var的值为:", global_var) test_local_global() print("全局变量global_var的值为:", global_var)
输出结果为:
局部变量local_var的值为: 20 局部变量global_var的值为: 30 全局变量global_var的值为: 10
在函数中可以定义局部变量,局部变量的生命周期只在函数内部。如果在函数中需要对全局变量进行修改,需要使用global关键字来声明。
三、Python多进程共享全局变量
import multiprocessing global_var = 10 def test_multi_global(): global global_var global_var += 1 print("进程ID:", multiprocessing.current_process().name, "全局变量的值为:", global_var) if __name__ == '__main__': p1 = multiprocessing.Process(target=test_multi_global) p2 = multiprocessing.Process(target=test_multi_global) p1.start() p2.start() p1.join() p2.join() print("最终全局变量的值为:", global_var)
输出结果为:
进程ID: Process-1 全局变量的值为: 11 进程ID: Process-2 全局变量的值为: 12 最终全局变量的值为: 12
在多进程中需要对全局变量进行共享时,需要使用multiprocessing模块,同时使用global关键字进行声明和修改。
四、Python全局变量赋值
global_var = 10 def test_global_assignment(): global global_var global_var = 20 test_global_assignment() print("全局变量global_var的值为:", global_var)
输出结果为:
全局变量global_var的值为: 20
在函数内部可以通过global关键字来修改全局变量的值。
五、Python全局变量声明
global_var = 10 def test_global_declaration(): global global_var global_var += 1 print("全局变量global_var的值为:", global_var) test_global_declaration()
输出结果为:
全局变量global_var的值为: 11
在函数内部可以通过global关键字来声明全局变量,让函数内部的变量变成全局变量。
六、Python局部变量全局变量
global_var = 10 def test_local2global(): global_var = 20 print("局部变量global_var的值为:", global_var) def test_global2local(): global global_var global_var = 30 print("全局变量global_var的值为:", global_var) test_local2global() print("全局变量global_var的值为:", global_var) test_global2local() print("全局变量global_var的值为:", global_var)
输出结果为:
局部变量global_var的值为: 20 全局变量global_var的值为: 10 全局变量global_var的值为: 30
局部变量和全局变量可以同名,但是在函数内部如果定义了同名的变量,会优先使用局部变量。如果需要在函数内部修改全局变量的值,则需要使用global关键字。