从 getattr() 获取内存位置

Getting memory location from getattr()

根据我的研究,我了解到使用 getattr() 可以让一个人获得某个对象的方法,例如:

getattr(obj, method)

相当于

obj.method()

但是,我尝试在我的代码中使用它并声明returns一个内存位置:

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

我不明白我做错了什么。感谢任何帮助。

方法只是属性,getattr()检索属性。因此

getattr(obj, 'method')

相同
obj.method

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

getattr(obj, 'method')()

__getattr__ 是一个钩子方法,允许 class 自定义如何处理缺失的属性。您通常不需要直接调用它。