Unterklassen einer Klasse mithilfe der Unterklassen-Methode von Python finden
Das Finden aller Unterklassen einer bestimmten Klasse ist üblich Bedarf in der objektorientierten Programmierung in Python. Python bietet eine elegante Lösung durch die Methode __subclasses__.
Klassen neuen Stils in Python (d. h. solche, die von der Objektklasse erben) verfügen über eine Methode __subclasses__, die eine Liste ihrer Unterklassen zurückgibt. Betrachten Sie die folgende Klassenhierarchie:
1 2 3 4 5 6 7 8 9 10 11 |
|
Um die Unterklassen von Foo zu erhalten, rufen Sie einfach Foo.__subclasses__() auf:
1 2 |
|
Recursive Subclass Retrieval
Wenn Sie alle Unterklassen, einschließlich Unterunterklassen, finden möchten, ist die Rekursion hilfreich notwendig:
1 2 3 4 5 6 |
|
Umgang mit Klassennamen-Strings
Sie haben erwähnt, dass Unterklassen gefunden werden sollen, denen der Klassenname als String gegeben wird. Da es sich bei Python-Klassen um erstklassige Objekte handelt, wird empfohlen, die Klasse direkt und nicht als Zeichenfolgendarstellung zu verwenden. Wenn Sie jedoch über eine Klassennamenzeichenfolge verfügen, können Sie die Klasse mithilfe des globals()-Wörterbuchs abrufen:
1 2 3 |
|
Für Klassen, die in verschiedenen Modulen definiert sind, können Sie importlib verwenden, um die Klasse durch Importieren abzurufen Modul und Zugriff auf das entsprechende Attribut:
1 2 3 4 5 6 |
|
Das obige ist der detaillierte Inhalt vonWie finde ich Unterklassen einer Python-Klasse mit „__subclasses__'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!