如何在python中使用多处理为变量赋值新值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中使用多处理为变量赋值新值相关的知识,希望对你有一定的参考价值。

def foo(var, new_value):
    var = new_value

x = 1
multiprocessing.Process(target=foo, args=(x,2))
p.start()
p.join()
print(x)

我希望print(x)的输出是2,但事实上我得到1.我怎么能为现有变量赋值?

答案

你需要使用multiprocessing shared values;

import multiprocessing
import ctypes

def foo(var, new_value):
    var.value = new_value

x = multiprocessing.Value(ctypes.c_int, 1)
print(x.value)
p = multiprocessing.Process(target=foo, args=(x,2))
p.start()
p.join()
print(x.value)

以上是关于如何在python中使用多处理为变量赋值新值的主要内容,如果未能解决你的问题,请参考以下文章

几点技巧让你的 python 代码更加 pythonic

python对多个变量循环赋值

如何修改全局变量的值

如何在 Python 中的多处理期间访问全局变量 [重复]

python 变量 赋值浅拷贝深拷贝

如何为 TensorFlow 变量赋值?