什么是Python的“检查”相当于Python?

时间:2010-08-24 05:13:42

标签: python

我只想快速查看Python中对象的属性和值,如何在mac上的终端中执行此操作(非常基本的东西,从未使用过python)?

具体来说,我想查看this Google App Engine MailHandler example中的message.attachments(图片,视频,文档等)。

4 个答案:

答案 0 :(得分:17)

如果要转储整个对象,可以使用pprint模块获取漂亮的打印版本。

from pprint import pprint

pprint(my_object)

# If there are many levels of recursion, and you don't want to see them all
# you can use the depth parameter to limit how many levels it goes down
pprint(my_object, depth=2)

编辑:我可能误读了'对象'你的意思 - 如果你想查看类实例,而不是像dicts那样的基本数据结构,你可能想看看inspect模块代替。

答案 1 :(得分:13)

使用getmembers模块的inspect属性

它将返回(key, value)元组列表。如果可用,则从obj.__dict__获取值,如果getattr中没有相应的条目,则使用obj.__dict__。它可以帮助您免于为此目的编写几行代码。

答案 2 :(得分:6)

<强>更新

有比dir更好的方法。请参阅其他答案。

原始答案

使用内置函数dir(fp)查看fp

的属性

答案 3 :(得分:1)

我很惊讶没有人提到Python的__str__方法,它提供了一个对象的字符串表示。不幸的是,它似乎没有在pdb中自动打印。

也可以使用__repr__,但__repr__有其他要求:首先,你(至少在理论上)应该能够eval()输出__repr__,虽然这个要求似乎很少执行。