2010-08-24 51 views

回答

13

使用inspect模塊

getmembers屬性將返回(key, value)元組的列表。它從obj.__dict__得到的值(如果可用)並且使用getattr如果obj.__dict__中沒有對應的條目。它可以幫你避免爲此寫幾行代碼。

6

更新

有更好的方法來做到這一點比dir。查看其他答案。

原來的答案

使用內置的功能dir(fp)看到fp屬性。

+0

非常感謝你,現在我可以通過這些循環並打印'key = object [value]'(key = value)。有沒有更好的辦法? – 2010-08-24 05:17:42

+0

我想不出另一種方式,期望可能'getattr',另一種內置函數。 – 2010-08-24 05:19:30

+1

參見'inspect'模塊。 – aaronasterling 2010-08-24 05:29:31

16

如果你想轉儲整個對象,你可以使用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模塊代替。

0

我很驚訝沒有人提到過Python的__str__方法,它提供了一個對象的字符串表示。不幸的是,它似乎沒有在pdb中自動打印。

對此,也可以使用__repr__,但__repr__有其他要求:一方面,您需要能夠eval()的輸出__repr__

相關問題