Skip to main content
 首页 » 编程设计

Python线程不会更改函数内的全局变量

2025年05月04日21JustinYoung

我想编码的最基本形式是如下代码:

import threading 
 
arr = [] 
def test(id): 
    global arr 
    arr.append(id) 
 
threading.Thread(target=test, args="8") 
print(arr) 

我想做的是将“8”附加到一个名为 arr 的全局变量,但这并没有发生,print(arr) 给出了这个输出:

[] 

但是,如果我使用这段代码,一切正常:

import threading 
 
arr = [] 
def test(id): 
    global arr 
    arr.append(id) 
 
test("8") 
print(arr) 

问题似乎与线程有关,那么如何使用线程并更改函数test 中的全局变量的值?

请您参考如下方法:

您还必须启动线程才能实际运行函数 test

import threading 
 
arr = [] 
def test(id): 
    global arr 
    arr.append(id) 
 
t = threading.Thread(target=test, args="8") 
t.start() 
t.join() 
print(arr)