从getattr()获取内存位置

时间:2018-06-12 21:46:36

标签: python memory getattr getattribute

从我的研究中,我了解使用getattr()允许人们在某个对象上获取方法,例如:

getattr(obj, method)

相当于

obj.method()

但是,我尝试在我的代码中使用它,语句返回一个内存位置:

<bound method _Class.method of <Class instance at 0x7f412df0c320>>

我不明白我做错了什么。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

方法只是属性,getattr()检索属性。就这样

getattr(obj, 'method')

相同
obj.method

所以没有()调用primary,所以不要调用方法对象。只需添加一个调用表达式,即可调用getattr()方法的结果:

getattr(obj, 'method')()

__getattr__是一种钩子方法,允许类自定义丢失属性的处理方式。您通常不需要直接调用它。