运行时函数目标为 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()

的第二个参数