Python中相当于Ruby的“inspect”的是什么?

21 投票
6 回答
7349 浏览
提问于 2025-04-16 03:12

我想快速查看一个Python对象的属性和数值,怎么在Mac的终端里做到这一点(很基础的内容,我从来没用过Python)?

具体来说,我想看看在这个Google App Engine MailHandler示例中,message.attachments里有什么(比如图片、视频、文档等等)。

6 个回答

8

更新

其实有比 dir 更好的方法来做到这一点。可以看看其他的回答。

原始回答

可以使用内置的函数 dir(fp) 来查看 fp 的属性。

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 来获取值。这样可以帮你省去写几行代码的麻烦。

撰写回答