請不要問我如何讓自己陷入這種情況。 可以說我有一個叫做ccollection
的班級。打印類中的所有屬性
這個類具有以下屬性在運行時:
ccollection.a.b.x = 1
ccollection.a.b.y = 3
ccollection.a.b.z = 4
...
ccollection.a.c = 3
ccollection.b = 3
這個類將是設置動態地如上所述。所以沒有辦法事先了解課堂中的屬性。
現在我想打印的所有屬性在這個類,例如:
ccollection.a.b
應打印
ccollection.a.b.x = 1
ccollection.a.b.y = 3
ccollection.a.b.z = 4
和 ccollection.a
應打印
ccollection.a.b.x = 1
ccollection.a.b.y = 3
ccollection.a.b.z = 4
ccollection.a.c = 3
我想你這個想法。每個打印應該開始打印同一級別和以下的所有元素。我正在尋找一種遞歸遍歷所有屬性的方法(這是一種樹狀數據結構)
'collection.a'的類型是什麼?我問,因爲'collection.a.b'不是'collection'對象的屬性,而是'collection.a'的屬性。您可能需要使用自定義的'__str__'或'__repr__'方法創建幾個類,才能以您想要的方式工作。 – Blckknght
@Blckknght,在ccollection.a.b.x = 1中,a本身是一個ccollection,b也是一個ccollection。 x設置爲1 – theAlse
好的。你如何創建屬性。你只是直接分配它們(例如'ccollection.a = ccollection()')?或者是否有某種特定的方式讓給定的實例知道它應該具有的屬性?如果不是的話,你可以使用'dir',但是清除列表中包含的各種方法和其他方法將是一種痛苦。 – Blckknght