python通过字符串的函数名称执行指定函数

例如我在python中定义了函数 zhetenga,现在根据某些条件,得到了要执行的函数名称的字符串 'zhetenga'。

要通过字符串的函数名称执行指定函数,可以直接 exec 'zhetenga' + '()'。

但是这样一点都不优雅,写得不爽看着更不爽,于是我来看看有没有优雅的办法。

假如有类 test,里面有个函数 zhetenga,现在要想调用 zheteng 的话,可以执行:getattr(test, 'zheteng')()。

但是如果不是类的函数的话,这样就不行了,但还是可以变通一下的,通过执行:locals()["zheteng"]()。

2014年08月06日