我將如何做到以下幾點:怎麼辦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')
當你想在不同的實例上調用同樣的方法時,這對你不知道名稱是很有用的。