Python中相当于Ruby的“inspect”的是什么?
我想快速查看一个Python对象的属性和数值,怎么在Mac的终端里做到这一点(很基础的内容,我从来没用过Python)?
具体来说,我想看看在这个Google App Engine MailHandler示例中,message.attachments
里有什么(比如图片、视频、文档等等)。
6 个回答
8
19
如果你想要查看整个对象的内容,可以使用 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)
补充说明:我可能误解了你说的“对象”的意思。如果你想查看的是类的实例,而不是像字典这样的基本数据结构,那么你可能需要使用 inspect
模块。
16
使用 inspect
模块中的 getmembers
属性。
它会返回一个包含 (键, 值)
元组的列表。如果 obj.__dict__
中有值,它就会从那里获取;如果没有对应的条目,它会使用 getattr
来获取值。这样可以帮你省去写几行代码的麻烦。