我只想快速查看Python中对象的属性和值,如何在mac上的终端中执行此操作(非常基本的东西,从未使用过python)?
具体来说,我想查看this Google App Engine MailHandler example中的message.attachments
(图片,视频,文档等)。
答案 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)
答案 3 :(得分:1)
我很惊讶没有人提到Python的__str__
方法,它提供了一个对象的字符串表示。不幸的是,它似乎没有在pdb中自动打印。
也可以使用__repr__
,但__repr__
有其他要求:首先,你(至少在理论上)应该能够eval()
输出__repr__
,虽然这个要求似乎很少执行。