import subprocess def my_function(x): return x + 100 output = subprocess.Popen(my_function, 1) #I would like to pass the function object and its arguments print output #desired output: 101
我只找到有关使用单独的脚本打开子流程的文档。有谁知道如何传递函数对象甚至是传递函数代码的简便方法?
我认为您正在寻找更类似于多处理模块的内容:
http://docs.python.org/library/multiprocessing.html#the-process- class
子流程模块用于生成流程并使用其输入/输出执行操作-不适用于运行功能。
这是multiprocessing您的代码的版本:
multiprocessing
from multiprocessing import Process, Queue def my_function(q, x): q.put(x + 100) if __name__ == '__main__': queue = Queue() p = Process(target=my_function, args=(queue, 1)) p.start() p.join() # this blocks until the process terminates result = queue.get() print result