Die Unterschiede zwischen type() und isinstance() verstehen
In Python type() und isinstance() sind zwei Funktionen, die zur Typprüfung verwendet werden. Sie weisen jedoch unterschiedliche Merkmale auf, die sich auf ihre Verwendungsszenarien auswirken.
Typprüfung mit type()
type() gibt den Typ einer an Objekt, eine Klasse, zu der das Objekt gehört. Durch den Vergleich des zurückgegebenen Typs mit einem bekannten Typ können Sie beurteilen, ob ein Objekt von diesem bestimmten Typ ist:
import types if type(a) is types.DictType: do_something()
Dieser Code prüft, ob Objekt a ein Wörterbuchtyp ist. Wenn ja, wird die Funktion do_something() ausgeführt.
Typprüfung mit isinstance()
isinstance() prüft, ob ein Objekt vorhanden ist eine Instanz einer bestimmten Klasse oder Unterklasse. Im Gegensatz zu type() berücksichtigt es die Vererbungshierarchie:
if isinstance(a, dict): do_something()
Hier prüft isinstance(), ob Objekt a ein Wörterbuch oder eine Instanz einer Klasse ist, die von dict erbt . Wenn ja, wird die Funktion do_something() aufgerufen.
Hauptunterschiede
class Cat(Animal): pass if isinstance(pet, Cat): # True do_something_catty()
type() würde Animal als Haustier zurückgeben, unabhängig davon, ob es sich um eine Katze oder eine andere Unterklasse handelt.
Am besten Praktiken
Im Allgemeinen wird isinstance() bevorzugt, wenn:
type() ist nützlich, wenn:
Das obige ist der detaillierte Inhalt vonPython-Typprüfung: Wann sollte „type()' vs. „isinstance()' verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!