„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie wähle ich zwischen Pythons „type()“ und „isinstance()“ für die Objekttypprüfung?

Wie wähle ich zwischen Pythons „type()“ und „isinstance()“ für die Objekttypprüfung?

Veröffentlicht am 23.12.2024
Durchsuche:514

How to Choose Between Python's `type()` and `isinstance()` for Object Type Checking?

So bestimmen Sie den Typ eines Objekts

Die Bestimmung des Typs eines Objekts ist entscheidend für die Sicherstellung der Datenkonsistenz und die entsprechende Ausführung von Vorgängen. Python bietet zu diesem Zweck zwei integrierte Funktionen: type() und isinstance().

Verwenden von type()

Die Funktion type() gibt den genauen Typ zurück eines Objekts. Zum Beispiel:

>>> type([]) is list
True
>>> type({}) is dict
True
>>> type('') is str
True
>>> type(0) is int
True

Mit isinstance()

Die Funktion isinstance() prüft, ob ein Objekt eine Instanz eines bestimmten Typs ist, einschließlich geerbter Typen. Im Gegensatz zu type() unterstützt es die Typvererbung.

>>> isinstance(b, Test1)
True
>>> isinstance(b, Test2)
True
>>> isinstance(a, Test1)
True
>>> isinstance(a, Test2)
False
>>> isinstance([], list)
True
>>> isinstance({}, dict)
True

Wählen zwischen type() und isinstance()

Im Allgemeinen wird isinstance() zum Überprüfen von Objekttypen bevorzugt, da abgeleitete Typen berücksichtigt werden. Type() ist besser geeignet, wenn Sie aus bestimmten Gründen das genaue Typobjekt benötigen. Hier ist ein Beispiel, in dem Sie isinstance():

def print_object_type(obj):
  if isinstance(obj, int):
    print("Integer")
  elif isinstance(obj, float):
    print("Float")
  elif isinstance(obj, str):
    print("String")
  else:
    print("Unknown type")
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3