有没有办法在运行时决定新进程运行哪个函数。 (由multiprocessing.Process
创建)
假设我有2个功能
def f():
print("In f")
def g():
print("In g")
func_name = str(input("enter function to be run = "))
multiprocessing.Process(target = func_name, args = ()).start()
现在我运行程序
enter function to be run = f
这给了我错误
TypeError: 'str' object is not callable
这看起来很明显,因为函数的名称应该匹配,但在这种情况下,名称在变量func_name
中作为字符串。
答案 0 :(得分:2)
使用字典:
functions = {'f': f, 'g': g}
multiprocess.Process(target=functions.get(func_name), args=()).start()
最好确保func_name
实际上在functions
。您还可以使用默认函数作为.get()