【发布时间】:2018-11-07 21:18:49
【问题描述】:
我想询问用户输入,然后将所有输入存储到一个列表中。输入将与我定义的函数的拼写完全相同。
inp = raw_input("functions you want to execute, sep by commas:")
alist = []
for j in inp.split(','):
alist.append(j)
def func1():
print 'FUNCTION 1'
def func2():
print 'FUNCTION 2'
def func3():
print 'FUNCTION 3'
for i in alist:
eval(i+'()') #I want to do this but all at the same time
在这种情况下,当要求输入时,我希望执行所有 3 个函数,列表将如下所示:
['func1','func2','func3']
我想做的是同时执行它们。
我考虑过多处理,但我不知道如何从列表中进行。
另外,请不要跟我讲我对 eval() 的用法,这段代码是用于分子动力学模拟的。
【问题讨论】:
-
为每个函数创建一个进程,然后在所有进程对象被构造(,初始化等等..)之后启动它们。但鉴于您的函数非常短,很可能一个函数会在另一个函数开始之前结束。至于获取对象(根据其名称),您可以使用类似:
globals()["func1"]()(这也称为它),具体取决于函数的定义方式/位置。 -
请不要随便使用
eval:stackoverflow.com/q/1832940/1025391
标签: python multithreading multiprocessing