如何在Python中显示对象的属性?

时间:2013-01-20 11:10:20

标签: python

有没有方法让我知道对象属性的值? 例如,
info = urllib2.urlopen('http://www.python.org/')
我想知道所有属性的信息价值。也许我不知道信息的属性是什么。 str()或list()不能给我答案。

5 个答案:

答案 0 :(得分:3)

要获取对象属性的所有名称,请使用dir(obj)。要获取其值,请使用getattr(obj, attr_name)。您可以打印所有属性及其值,如下所示:

for attr in dir(obj):
    print(attr, getattr(obj, attr))

如果您不需要内置属性,例如__str__等,则可以使用obj.__dict__,它返回对象属性及其值的字典。

for k in obj.__dict__:
    print(k, obj.__dict__[k])

答案 1 :(得分:2)

您可以使用vars(info)info.__dict__。它将使用attribute_name:value格式将对象的名称空间作为字典返回。

答案 2 :(得分:2)

您可以使用Python的dir()。 dir(info)将返回对象信息的所有有效属性。

info = urllib2.urlopen('http://www.python.org/')
print dir(info)

答案 3 :(得分:1)

您可以使用dir()

dir(info)

dir() man

  

使用参数,尝试返回该对象的有效属性列表。

答案 4 :(得分:0)

使用dir()或查看 dict 的所有方法基本上都是不行的。

更好地检查

obj.__class__

obj.__class__.__bases__

以便了解对象到底是什么。

然后你应该检查模块的官方API文档。

除非文档另有说明,否则方法和数据可能是私有的,一般不供公众使用。