替换变量'函数调用期间Python中的值。

时间:2014-04-13 06:15:28

标签: python function

在我的python程序中,我必须调用类似这样的函数:

driver_name.project.paired_config_L1_M_10g() 

我调用的函数取决于我在三个变量中存储的值,即:

varA == M 
varB == L1 
varC = 10g 

varAvarBvarC每个可以有大约20个不同的值,我不想为它们中的每一个写一个函数调用(虽然实际的功能定义存在。)通常我希望函数调用为:

driver_name.project.paired_config_$varA_$varB_$varC() 

但这似乎不起作用。建议?

2 个答案:

答案 0 :(得分:1)

您可以使用getattr。它将对象和属性名称作为字符串并返回该属性。这里返回的值是一个可以立即调用的方法。

getattr(driver_name.project, 'project_config_%s_%s_%s' % (varA, varB, varC))()

答案 1 :(得分:0)

您是否将字典视为一种可能的解决方案?

使用正确的键(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)]()