Wie würde ich eine Liste von Klassen in Python sortieren und sicherstellen, dass jede untergeordnete Klasse vor einer ihrer übergeordneten Klassen in der Liste ist?Wie kann ich eine Liste von Python-Klassen nach Vererbungstiefe sortieren?
Ich frage, weil ich sehen möchte, welcher Typ aus einer Liste von Typen, zu denen ein Objekt gehört, aber den spezifischsten Typ finden, wenn es zu mehreren gehört.
Verwenden Sie 'issubclass' in Ihrer Sortierschlüsselfunktion. – njzk2
(typischerweise: 'sortiert (Klassen, cmp = Lambda x, y: 1 wenn issubclass (x, y) else -1)') – njzk2
@ njzk2: Dieser Komparator ist inkonsistent; Klassen ohne Vererbungsbeziehung vergleichen jeweils weniger als die andere, und eine Klasse vergleicht immer größer als sie selbst. – user2357112