小编典典

使用字典选择要执行的功能

python

我正在尝试使用函数式编程来创建包含键和要执行的功能的字典:

myDict={}
myItems=("P1","P2","P3",...."Pn")
def myMain(key):
    def ExecP1():
        pass
    def ExecP2():
        pass
    def ExecP3():
        pass
        ...
    def ExecPn():
        pass

现在,我已经看到了用于在模块中查找定义的函数的代码,我需要执行以下操作:

    for myitem in myItems:
        myDict[myitem] = ??? #to dynamically find the corresponding function

所以我的问题是,如何列出所有Exec功能,然后使用字典将它们分配给所需的项目?所以最后我将有myDict["P1"]() #this will call ExecP1()

我的真正问题是,我有大量的这些物品,并且制作了一个可以处理这些物品的图书馆,因此最终用户只需要调用 myMain("P1")

我想使用检查模块,但是我不确定该如何做。

我避免的理由:

def ExecPn():
    pass
myDict["Pn"]=ExecPn

我必须保护代码,因为我正在使用它在我的应用程序中提供脚本功能。


阅读 165

收藏
2020-12-20

共1个答案

小编典典

不为此感到骄傲,但是:

def myMain(key):
    def ExecP1():
        pass
    def ExecP2():
        pass
    def ExecP3():
        pass
    def ExecPn():
        pass 
    locals()['Exec' + key]()

但是我确实建议您将它们放在模块/类中,这确实是可怕的。

2020-12-20