将与定义名称相对应的字符串列表转换为Python中的定义查找字典

问题描述 投票:1回答:1

是否有一种方法可以将函数或定义名称(字符串)的列表转换成基于字典的查找表,其中键是定义名称,而值是与名称相对应的定义类(定义名称是名称给定)。有人说,最安全的方法是使用查找表方法(字典映射),例如here。但是,这种情况使得定义名称的列表是可变的,并且用户/程序员不能直接将其写入代码中,而必须以编程方式添加。

所以我该如何有效执行以下操作:

nameList = ['methodName1','methodName2','methodName3','methodName4'] 
methodLookup = {}
for name in nameList:
        methodLookup.update({name:name.strip('\'')})

其中字典值是函数而不是字符串。

本质上类似于以下内容,但与之相反:

for var, val in dictionary.items(): exec(var + ' = val')
python list dictionary definition
1个回答
1
投票

我想您可以使用类似这样的东西:

def plus1(x):
    return x + 1
def plus2(x):
    return x + 2

function_list = ['plus1', 'plus2']
function_dict = {function_name: globals()[function_name] for function_name in function_list}

然后您可以通过以下方式调用plus1函数:

function_dict['plus1'](5)
#6
© www.soinside.com 2019 - 2024. All rights reserved.