Was ist mit Typen passiert.Classtype in Python 3?
-
22-08-2019 - |
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?
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