Python帶有方便的dir()
函數,可以爲你列出一個類的內容。舉例來說,對於這個類:如何迭代類的屬性,按照它們的定義順序?
class C:
i = 1
a = 'b'
dir(C)
將返回
['__doc__', '__module__', 'a', 'i']
這是偉大的,但要注意的'a'
和'i'
順序如何,現在不同,那麼它們所定義的順序
如何按照定義的順序遍歷C的屬性(可能忽略內置文檔&模塊屬性)?對於上面的C類,將是'i'
,然後是'a'
。
附錄: - 我正在編寫一些序列化/日誌記錄代碼,我希望按照定義的順序對屬性進行序列化,以便輸出與創建該類的代碼類似。
爲什麼他們定義的順序很重要?在這種情況下,訂單無關緊要。如果你能得到它,你會如何使用這些信息? – 2010-02-17 13:38:11
你在序列化類的一個或多個實例嗎?在你的例子中,'a'和'i'是類屬性。如果你的意思是這些是實例屬性,你應該在'__init__'中使用'self.a ='b''和'self.i = 1'來定義它們。 – PaulMcG 2010-02-17 14:06:38
這些是類級別的屬性,它們不如實例變量有用。你爲什麼試圖保持類屬性的順序?保持實例變量的順序不是更好嗎?你爲什麼要用類級別的變量做技巧? – 2010-02-17 15:14:30