gpt4 book ai didi

python - 与python并行执行代码

转载 作者:行者123 更新时间:2023-11-28 21:55:55 25 4
gpt4 key购买 nike

我正在尝试在 python 中使用多线程。我写了下面的代码来开始。它应该并行计算列表中包含的数字的平方,并将结果返回到名为“result”的列表中。我写这个是为了并行化包含 for 循环的脚本。

但是,我收到一个类型错误,告诉我“int 对象不可调用”。我猜这是因为这行代码:thr.append(threading.Thread(target=square(k))):在我阅读的示例中,target 是一个函数。但在我的例子中,我需要用不同的参数调用同一个函数。我怎样才能做到这一点?

>>> def square(c):
... return c^2
... result.append(c^2)
...



>>> def sqr():
... thr = []
... for k in l:
... thr.append(threading.Thread(target=square(k)))
... for t in thr:
... t.start()
... for i in thr:
... t.join()

最佳答案

试试这个:

thr.append(threading.Thread(target=square, args=(k,)))

代替 thr.append(threading.Thread(target=square(k)))

您收到该错误是因为您最终在代码中调用了该函数。当函数被调用时,square(k) 返回一个不可调用的 int

引用documentation .

此外,正如 unutbu 在对该问题的评论中指出的那样,您正在进行 XOR 而不是计算平方。正方形是这样计算的:x**2 而不是 x^2

此外,您在将结果添加到列表之前返回结果,因此如果您想将数字的平方添加到列表,您可能需要颠倒函数定义中两行的顺序,结果

关于python - 与python并行执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301531/

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