如何正确从实例列表中调用方法获取对象属性?
问题解决:从实例列表获取对象属性
你的问题出在调用方法时没有加括号。get_job是一个实例方法,必须通过()执行它,才能返回对应的job属性值。
修复方案1:调用方法时添加括号
把有问题的代码行改成:
print(list_of_clowns[0].get_job())
这样就能输出puppets,和你调用clown1.get_job()的逻辑完全一致。
修复方案2:直接访问实例属性
因为job是Clown类的公共实例属性,你也可以跳过方法,直接访问它:
print(list_of_clowns[0].job)
这样同样能得到puppets的结果。
为什么原代码输出奇怪内容?
当你写list_of_clowns[0].get_job时,没有加括号,Python会把它当成方法对象来引用,而不是执行这个方法。所以输出的是该方法的绑定信息,也就是你看到的<bound method Clown.get_job of <__main__.Clown object at ...>>。
内容的提问来源于stack exchange,提问作者Tariq
相关产品推荐
相关产品推荐

