Was's der kanonische Weg, um für Typ in Python überprüfen?
Wie kann man am besten prüfen, ob ein bestimmtes Objekt von einem bestimmten Typ ist? Wie wäre es zu prüfen, ob das Objekt von einem bestimmten Typ erbt?
Sagen wir, ich habe ein Objekt "o". Wie prüfe ich, ob es ein "str" ist?
1160
3
Um zu prüfen, ob
o
eine Instanz vonstr
oder einer Unterklasse vonstr
ist, verwenden Sie isinstance (dies wäre der "kanonische" Weg):Um zu prüfen, ob der Typ von
o
genaustr
ist (Unterklassen ausschließen):Das Folgende funktioniert auch und kann in einigen Fällen nützlich sein:
Siehe Built-in Functions in der Python Library Reference für relevante Informationen.
Noch ein Hinweis: In diesem Fall, wenn Sie Python 2 verwenden, sollten Sie vielleicht tatsächlich verwenden:
verwenden, da dies auch Unicode-Strings abfängt (
unicode
ist keine Unterklasse vonstr
; sowohlstr
als auchunicode
sind Unterklassen vonbasestring
). Beachten Sie, dassbasestring
in Python 3 nicht mehr existiert, wo es eine strikte Trennung von Strings (str
) und binären Daten (bytes
) gibt.Alternativ dazu akzeptiert
isinstance
ein Tupel von Klassen. Dies gibt True zurück, wenn x eine Instanz einer beliebigen Unterklasse von (str, unicode) ist:isinstance(o, str)
gibt
Truezurück, wenn
oein
strist oder von einem Typ ist, der von
str` erbt.type(o) is str
gibtTrue
zurück, wenn und nur wenno
einstr
ist. Es wirdFalse
zurückgegeben, wenno
von einem Typ ist, der vonstr
erbt.Link zu den Dokumenten