2015-12-09 111 views
0

編輯:一個解決方案是這樣的回答:How to use a dot 「.」 to access members of dictionary?打印對象的屬性,如json.dumps打印的字典

當使用字典:

d = dict() 
d['param1'] = 17 
d['param2'] = 3 

很容易與print json.dumps(d)打印。當使用一個對象/類:

class z: 
    pass 
z.param1 = 17 
z.param2 = 3 

我不能管理打印的z的所有屬性,也沒有用print json.dumps(z),也不符合print z。怎麼做?


旁註,但重要的是:爲什麼我想用一個類/對象存儲參數,當它是合乎邏輯的使用字典?由於z.param1z['param1']短得多,而且比我的(法語)關鍵字[]'退出時間要長,因爲ALT + GR + 5(比如說2秒而不是0.5,但這對你來說很重要有很長的代碼有許多變量)

+2

http://stackoverflow.com/questions/192109/is-there-a-function-in-python-to-print-all-the-current-properties-and-values-of – Termi

+0

@Anil或其他東西:會不會有'd ['param1']'用d.param1'訪問字典會有短暫的破解(通過繼承'dict')? – Basj

+1

這是你在找什麼? http://stackoverflow.com/a/23689767/2652580 – Termi

回答

1

您可以簡單地使用__dict__上一個類的實例來獲得屬性形式dict對象爲:

>>> z.__dict__ 
>>> {'param1': 17, '__module__': '__main__', 'param2': 3, '__doc__': None} 

但是,如果您需要刪除__xxx__內置的方法,那麼你可能需要指定t他在課堂上用__str__方法。

+0

你能舉一個關於'__str__'的例子嗎? – Basj

+0

您的預期產出是什麼? – ZdaR

+0

這個輸出@ZdaR:'{'param1':17,'param2':3}' – Basj