Frage

Ich habe ein Skript, in dem ich ein paar magische Dinge mache, um ein Modul dynamisch zu laden und die erste Klasse im Modul zu instanziieren. Aber ich kann nicht benutzen types.ClassType mehr in Python 3. Was ist der richtige Weg, dies jetzt zu tun?

War es hilfreich?

Lösung

Ich habe es herausgefunden. Es scheint, dass Klassen vom Typ "Typ" sind. Hier ist ein Beispiel dafür, wie Sie zur Laufzeit zwischen Klassen und anderen Objekten unterscheiden können.

>>> class C: pass
... 
>>> type(C)
<class 'type'>
>>> isinstance(C, type)
True
>>> isinstance('string', type)
False

Andere Tipps

Es wurde für verwendet Klassische Klassen. In Python 3 sind sie weg. Ich nehme an, Sie könnten so etwas verwenden wie:

issubclass(ClassName, object)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top