【问题标题】:Getting memory location from getattr()从 getattr() 获取内存位置
【发布时间】:2018-06-12 21:46:36
【问题描述】:

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

getattr(obj, method)

等价于

obj.method()

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

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

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

【问题讨论】:

  • getattr(obj, 'method') 相当于obj.method。没有调用任何内容,您只是在检索属性。

标签: python memory getattr getattribute


【解决方案1】:

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

getattr(obj, 'method')

一样
obj.method

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

getattr(obj, 'method')()

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 2022-01-03
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多