我正在尝试使用Praw编写Reddit机器人,这是我的功能:

submission = reddit.submission(mention.submission.id)

(我之前已经定义了reddit = praw.Reddit()等,因此提交应该给我一个submission object

首先,我要检查提交的内容是自发帖子还是链接。我可以通过检查submission.is_self来做到这一点。但是,出于好奇,我尝试打印dir(submission)submission.__dict__,但都没有将is_self列为对象的属性。

为什么呢?我如何可靠地找到对象的所有属性,而不必深入研究库本身的源代码?在这方面,Praw的文档缺乏。

最佳答案

PRAW使用__getattr__魔术来动态获取和设置对象属性(请参见praw/models/reddit/base.py中的RedditBase类)。这就是dir()不显示它的原因。

is_self在源代码中的任何地方都不存在,因为该字符串基于从reddit接收的数据。

关于python - 如何在Python中列出对象的所有属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47825548/

10-12 22:48