簡體   English   中英

運行時函數目標為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()的第二個參數提供

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM