gpt4 book ai didi

Python 多处理 - 如何将 kwargs 传递给函数?

转载 作者:太空狗 更新时间:2023-10-29 20:47:09 28 4
gpt4 key购买 nike

如何使用 Python 的多处理将字典传递给函数?文档:https://docs.python.org/3.4/library/multiprocessing.html#reference说要通过字典,但我不断得到

TypeError: fp() got multiple values for argument 'what'

代码如下:

from multiprocessing import Process, Manager

def fp(name, numList=None, what='no'):
print ('hello %s %s'% (name, what))
numList.append(name+'44')

if __name__ == '__main__':

manager = Manager()

numList = manager.list()
for i in range(10):
keywords = {'what':'yes'}
p = Process(target=fp, args=('bob'+str(i)), kwargs={'what':'yes'})
p.start()
print("Start done")
p.join()
print("Join done")
print (numList)

最佳答案

当我运行你的代码时,我得到了一个不同的错误:

TypeError: fp() takes at most 3 arguments (5 given)

我通过打印 args 和 kwargs 并将方法更改为 fp(*args, **kwargs) 进行调试,并注意到“bob_”作为字母数组传入。似乎用于 args 的括号是可操作的,实际上并没有给你一个元组。将其更改为列表,然后将 numList 作为关键字参数传入,使代码对我有用。

from multiprocessing import Process, Manager

def fp(name, numList=None, what='no'):
print ('hello %s %s' % (name, what))
numList.append(name+'44')

if __name__ == '__main__':

manager = Manager()

numList = manager.list()
for i in range(10):
keywords = {'what': 'yes', 'numList': numList}
p = Process(target=fp, args=['bob'+str(i)], kwargs=keywords)
p.start()
print("Start done")
p.join()
print("Join done")
print (numList)

关于Python 多处理 - 如何将 kwargs 传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38908663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com