[英]What is the Python equivalent of Ruby's "inspect"?
我只想在 Python 中快速查看對象的屬性和值,如何在 mac 上的終端中執行此操作(非常基本的東西,從未使用過 python)?
具體來說,我想看看這個 Google App Engine MailHandler 示例<\/a>(圖像、視頻、文檔等)中的
message.attachments<\/code>是什么。
如果要轉儲整個對象,可以使用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
模塊。
使用inspect
模塊的getmembers
屬性
它將返回(key, value)
元組的列表。 它得到的值從obj.__dict__
(如果可用),並使用getattr
如果在代碼中沒有相應條目obj.__dict__
。 它可以幫助您免於為此目的編寫幾行代碼。
我很驚訝沒有人提到Python的__str__
方法,它提供了一個對象的字符串表示。 不幸的是,它似乎沒有在pdb中自動打印。
也可以使用__repr__
,但__repr__
還有其他要求:首先,你(至少在理論上)應該能夠eval()
__repr__
的輸出,盡管這個要求似乎很少被強制執行。
嘗試
repr(obj) # returns a printable representation of the given object
或者
dir(obj) # the list of object methods
或者
obj.__dict__ # object variables
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.