函数内部的Python函数访问全局变量

时间:2020-10-01 18:19:34

标签: python multithreading

我有一个函数func1(),我想在其中使用多线程进行并行工作。我在该函数内定义了另一个名为func_thread()的函数,以访问一些局部变量并避免将其传递给线程函数。但是,对于所有那些只读变量,我没有任何问题。但是,对于输出值({x,这里所有线程都在向x添加值),我有麻烦。

在这种情况下,我收到x referenced before assignment错误。

def func1():
    lc = threading.Lock()
    x = np.zeros((100,100))
    def func_thread():
        lc.acquire()
        x = x + np.random.random((100,100))
        lc.release()

在这种情况下,我收到global variable x is not defined错误!

def func1():
    x = np.zeros((100,100))
    def func_thread():
        global x
        x = x + np.random.random((100,100))

0 个答案:

没有答案