在开发中经常会遇见不同的参数需要执行不同函数。
在可选项众多的情况下如果使用if/else逐个判断的话,会使代码极度丑陋,不够优雅。
为了优美的实现他,我们可以用一些python的内建函数。
1.getattr(object ,name)
这个地方的坑有很多。
举个例子:
class test:
def te():
print (1);
def tes(num):
print(num);
这里如果我们想要动态调用的话
我们只需要:
s = "te"
getattr(test,s)
即可,注:此时的 getattr(test,s)只是获取到了函数,他并没有执行。依此不论函数有没有参数值,这里的s只需要函数的名字即可(返回一个函数是python的特性,在此不过多解释)
可以通过print 查看一下
如果想要执行的话,我们可以
s = "te"
temp = getattr(test,s)
temp()
s = "tes"
temp = getattr(test,s)
temp(2)
即可实现函数的动态调用。
注:该方法只使用类的成员函数,对于普通的静态函数并不适用。
目前只举出这一项,剩下的方法等有时间测试完了再发出来。