我在Python中完成了一个并发任务,如下面的代码
def fun_x(a, b) :
for x in range(10000) :
x = x*x
for y in range(10000) :
y = y*y
return a*x, b*y
with futures.ProcessPoolExecutor() as executor:
futures_all_data = {executor.submit(fun_x, # Function name
number_a, # args 1
number_b, # args 2
) : number_a
for number_a, number_b in arg }
output_final = {}
for future in futures.as_completed(futures_all_data, timeout = None) :
result_Code, result_content = future.result()
output_final[result_Code] = result_content
return output_final
目前,我需要使用和类和子函数而不是funx,比如
def class_x(object):
__init__(self, a):
for x in range(10000):
x = x*x
a = a*x
def fun_y(self, b) :
for y in range(10000):
y = y*y
b = y*b + a
但是,我不知道如何处理executor.submit部分?
你能给我一些指导吗?
非常感谢你!
答案 0 :(得分:0)
我不确定你的代码真的想做什么,似乎你的代码格式不好。但是我有一个想法,为类创建任何功能
假设我们有一个函数x
def x(args):
body
使它成为一个类:
import collections
class X(collections.abc.callable):
def __call__(self, args):
body
x = X()
# usage
x(args)
所以你不必改变太多的东西,你得到了一个X类,当你需要调用它时,你仍然使用x(args)
PS:x是X级的实例。