从我的研究中,我了解使用getattr()
允许人们在某个对象上获取方法,例如:
getattr(obj, method)
相当于
obj.method()
但是,我尝试在我的代码中使用它,语句返回一个内存位置:
<bound method _Class.method of <Class instance at 0x7f412df0c320>>
我不明白我做错了什么。任何帮助表示赞赏。
答案 0 :(得分:0)
方法只是属性,getattr()
检索属性。就这样
getattr(obj, 'method')
与
相同obj.method
所以没有()
调用primary,所以不要调用方法对象。只需添加一个调用表达式,即可调用getattr()
方法的结果:
getattr(obj, 'method')()
__getattr__
是一种钩子方法,允许类自定义丢失属性的处理方式。您通常不需要直接调用它。