如何更新传递给线程的变量?

How do I update a variable passed onto a thread?

我有主要的 class,运行 是一个线程。我想将一个变量传递给该线程,然后全局更新它。这可能吗?

主要class:

import subThread

param = 'old param'

def Main():
    global param
    s = subThread.subThread(param)
    s.start()
    s.join()
    print(param)


if __name__ == '__main__':
    Main()

子线程:

import threading

class subThread(threading.Thread):

    param = ''

    def __init__(self, param):
        threading.Thread.__init__(self)
        self.param = param

    def run(self):
        self.param = 'new param'

当我运行 Main class时,输出仍然是'old param'。

你只是修改了self.param,subThread实例的变量,不是全局变量param

def Main():
    global param
    s = subThread.subThread(param)
    s.start()
    s.join()
    param = s.param
    print(param)


if __name__ == '__main__':
    Main()