替换变量';函数调用期间Python中的值。
在我的python程序中,我必须调用如下函数:替换变量';函数调用期间Python中的值。,python,function,Python,Function,在我的python程序中,我必须调用如下函数: driver_name.project.paired_config_L1_M_10g() 我调用的函数取决于我存储在三个变量中的值,即: varA == M varB == L1 varC = 10g varA、varB和varC可以分别有大约20个不同的值,我不想为它们中的每一个编写函数调用(尽管存在实际的函数定义)。通常我希望函数调用是: driver_name.project.paired_config_$varA_$varB_$
driver_name.project.paired_config_L1_M_10g()
我调用的函数取决于我存储在三个变量中的值,即:
varA == M
varB == L1
varC = 10g
varA
、varB
和varC
可以分别有大约20个不同的值,我不想为它们中的每一个编写函数调用(尽管存在实际的函数定义)。通常我希望函数调用是:
driver_name.project.paired_config_$varA_$varB_$varC()
但这似乎不起作用。建议 你有没有考虑过字典是一种可能的解决方案 只需使用适当的键(varA、varB、varC)和define函数初始化字典。那就叫它吧
driver_func_dict['ML110g'] = driver_name.project.paired_config_M_L1_10g
#init more dictionary items here
...
#call function
driver_funct_dict[str(varA)+str(varB)+str(varC)]()
您可以使用
getattr
。它将对象和属性名称作为字符串并返回属性。这里返回的值是一个可以立即调用的方法
getattr(driver_name.project, 'project_config_%s_%s_%s' % (varA, varB, varC))()
这个对象真的有8000个方法吗?看起来这些方法应该是一个包含3个参数的方法。