从 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 自定义如何处理缺失的属性。您通常不需要直接调用它。
根据我的研究,我了解到使用 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 自定义如何处理缺失的属性。您通常不需要直接调用它。