运行时函数目标为 multiprocessing.Process
runtime function target to multiprocessing.Process
有没有办法在 运行 时间内决定新进程要 运行 哪个功能。 (由 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
中作为字符串。
使用字典:
functions = {'f': f, 'g': g}
multiprocess.Process(target=functions.get(func_name), args=()).start()
最好确保 func_name
实际上在 functions
中。你也可以有一个默认函数,可以作为 .get()
的第二个参数
有没有办法在 运行 时间内决定新进程要 运行 哪个功能。 (由 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
中作为字符串。
使用字典:
functions = {'f': f, 'g': g}
multiprocess.Process(target=functions.get(func_name), args=()).start()
最好确保 func_name
实际上在 functions
中。你也可以有一个默认函数,可以作为 .get()