动态调用方法名称?

时间:2015-02-25 10:49:44

标签: python python-2.7

这是功能:

def runaction(ENV, action_list):

    appmanage_list = ['status']

    for action in action_list.keys():
        print('Action: %s' % action)

        if action in appmanage_list:

            from lib import appmanage_functions
            a = appmanage_functions.AppManage(ENV)
            a.[SOMETHING_GOES_HERE](ENV)

它被称为:

 runaction(env, main_f.opts2)

action_list(函数调用中的main_f.opts2参数) - 来自argparse的{​​{1}}字典;

{'optionname':True} - 将包含所有需要使用上述代码调用的选项;

appmanage_list - 需要调用选项名称,与action类中的方法相同。

代替 [SOMETHING_GOES_HERE] 我想添加appmanage_functions.AppManage变量,从类中调用适当的方法。

我尝试过类似的事情:

action

(a. + action + (ENV))

但确定 - 这不起作用......

Python 2.7

1 个答案:

答案 0 :(得分:2)

object.foo可以改为getattr(object, 'foo')

所以你可以说:

getattr(a, action)(ENV)