将与定义名称对应的字符串列表转换为 Python 中的定义查找字典
Converting a list of strings that corresponds to definition names into a definition lookup dictionary in Python
有没有办法将函数或定义名称(字符串)列表转换为基于字典的查找 table,其中键是定义名称,值是定义 class对应名字(定义名字就是给定的名字)。据说最安全的方法是使用查找table的方法(字典映射),例如here。但是,情况是定义名称列表是可变的,user/programmer 无法直接将其写入代码,而是必须以编程方式添加。
那么我怎样才能有效地做到以下几点:
nameList = ['methodName1','methodName2','methodName3','methodName4']
methodLookup = {}
for name in nameList:
methodLookup.update({name:name.strip('\'')})
其中字典值是函数而不是字符串。
本质上与以下内容相似但相反:
for var, val in dictionary.items(): exec(var + ' = val')
我想你可以使用这样的东西:
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
有没有办法将函数或定义名称(字符串)列表转换为基于字典的查找 table,其中键是定义名称,值是定义 class对应名字(定义名字就是给定的名字)。据说最安全的方法是使用查找table的方法(字典映射),例如here。但是,情况是定义名称列表是可变的,user/programmer 无法直接将其写入代码,而是必须以编程方式添加。
那么我怎样才能有效地做到以下几点:
nameList = ['methodName1','methodName2','methodName3','methodName4']
methodLookup = {}
for name in nameList:
methodLookup.update({name:name.strip('\'')})
其中字典值是函数而不是字符串。
本质上与以下内容相似但相反:
for var, val in dictionary.items(): exec(var + ' = val')
我想你可以使用这样的东西:
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