我将如何做到以下几点:怎么办GETATTR与方法
instance.method()
我知道我可以做getattr(instance, method)
得到instance.method
,但有一个内建的实际运行的方法是什么?
我将如何做到以下几点:怎么办GETATTR与方法
instance.method()
我知道我可以做getattr(instance, method)
得到instance.method
,但有一个内建的实际运行的方法是什么?
只要做到getattr(instance, method)()
。 getattr
返回方法对象,您可以使用()
与其他可调用方法一样调用该方法对象。
所有你需要做的就是添加一个()
到最后:
getattr(instance,method)()
您可以使用operator.methodcaller
创建将执行时对通过实例运行方法的功能。但是你仍然需要在一个实例上实际调用它。
from operator import methodcaller
call_hello = methodcaller('hello', 'Jack')
call_hello(something) # same as something.hello('Jack')
当你想在不同的实例上调用同样的方法时,这对你不知道名称是很有用的。