type() und isinstance() in Python mit Beispielen

⚡ Intelligente Zusammenfassung

Python `type()` und `isinstance()` sind eingebaute Funktionen zur Überprüfung der Klasse eines Objekts. `type()` gibt den genauen Typ zurück, während `isinstance()` prüft, ob ein Objekt zu einer Klasse oder einem Tupel von Klassen gehört. Beide werden hier anhand von Beispielen erläutert.

  • 🔍 Typ(): Gibt die genaue Klasse eines Objekts zurück, z. B. str, int oder list.
  • isinstance(): Prüft, ob ein Objekt eine Instanz einer gegebenen Klasse ist, und gibt True oder False zurück.
  • 🧩 Drei-Argument-Typ(): type(name, bases, dict) erzeugt dynamisch ein brandneues Klassenobjekt.
  • 🌳 Unterklassen: isinstance() gibt True für Unterklassen zurück; type() prüft nur die exakte Klasse.
  • 🎯 Anwendungsfälle: Eingabetypen validieren, Variablen debuggen und Verzweigungslogik anhand des Objekttyps implementieren.
  • 🤖 KI-Hilfe: KI-Tools wie Copilot generieren type()- und isinstance()-Prüfungen auf Anfrage.

type() und isinstance() in Python

Was ist type() in Python?

Python hat eine eingebaute Funktion namens type(), die Ihnen hilft, den Klassentyp der als Eingabe angegebenen Variable zu finden. Wenn die Eingabe beispielsweise eine Zeichenfolge ist, erhalten Sie die Ausgabe als , für die Liste wird es sein , usw.

Mit dem Befehl type() können Sie ein einzelnes Argument übergeben und der Rückgabewert ist der Klassentyp des angegebenen Arguments, Beispiel: type(object).

Es ist auch möglich, drei Argumente an type() zu übergeben, nämlich type(name, bases, dict). In diesem Fall erhalten Sie ein neues Typobjekt zurück.

Syntax für type()

type() kann auf zwei Arten verwendet werden, wie unten gezeigt:

 type(object)
type(namr, bases, dict)

Kenngrößen: Typ(Objekt)

  • Objekt: Dies ist ein obligatorischer Parameter. Wenn dies nur ein Parameter ist, der an type() übergeben wird, wird der Typ des Parameters zurückgegeben.

Kenngrößen: Typ(Name, Basen, Diktat)

  • Name:Name der Klasse.
  • Basen: (optional). Dies ist ein optionaler Parameter und die Basisklasse
  • dict: (optional). Dies ist ein optionaler Parameter und ein Namespace, der die Definition der Klasse enthält.

Rückgabewert

Wenn das Objekt der einzige Parameter ist, der an type() übergeben wird, wird der Typ des Objekts zurückgegeben.

Wenn es sich bei den an den Typ übergebenen Parametern um einen Typ (Objekt, Basen, Diktat) handelt, wird in diesem Fall ein neuer Objekttyp zurückgegeben.

Beispiel für type()

In diesem Beispiel haben wir einen String-Wert, eine Zahl, einen Float-Wert, eine komplexe Zahl, eine Liste, ein Tupel, ein Dict und ein Set. Wir werden die Variablen mit Typ verwenden, um die Ausgabe für jede von ihnen anzuzeigen.

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}

print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

Ausgang:

The type is :<class 'str'>
The type is :<class 'int'>
The type is :<class 'float'>
The type is :<class 'complex'>
The type is :<class 'list'>
The type is :<class 'tuple'>
The type is :<class 'dict'>
The type is :<class 'set'>

Beispiel: Verwendung von type() für ein Klassenobjekt.

Wenn Sie das aus einer Klasse erstellte Objekt mit type() überprüfen, wird der Klassentyp zusammen mit dem Namen der Klasse zurückgegeben. In diesem Beispiel erstellen wir eine Klasse und überprüfen den aus dem Klassentest erstellten Objekttyp.

class test:
    s = 'testing'

t = test()
print(type(t))

Ausgang:

<class '__main__.test'>

Beispiel: Verwendung von name, bases und dict in type()

Der Typ kann auch mit der Syntax aufgerufen werden: type(name, bases, dict).

Die drei an type() übergebenen Parameter, also name, bases und dict, sind die Komponenten, aus denen eine Klassendefinition besteht. Der Name stellt den Klassennamen dar, die Basis ist die Basisklasse und dict ist das Wörterbuch der Basisklassenattribute.

In diesem Beispiel werden wir alle drei Parameter verwenden, also Name, Basen und Diktat in type().

Ejemplo:

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

Ausgang:

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

Wenn Sie alle drei Argumente an type() übergeben, können Sie eine neue Klasse mit Basisklassenattributen initialisieren.

Was ist isinstance() in Python?

Python isinstance ist Teil von Integrierte Python-Funktionen. Python isinstance() akzeptiert zwei Argumente und gibt „true“ zurück, wenn das erste Argument eine Instanz der als zweites Argument angegebenen Klasseninfo ist.

Syntax isinstance()

isinstance(object, classtype)

Kenngrößen

  • Objekt: Ein Objekt, dessen Instanz Sie mit dem Klassentyp vergleichen. Es gibt „true“ zurück, wenn der Typ übereinstimmt, andernfalls „false“.
  • Klassentyp: Ein Typ oder eine Klasse oder ein Tupel von Typen und/oder Klassen.

Rückgabewert

Es wird „true“ zurückgegeben, wenn das Objekt eine Instanz von „classtype“ ist, andernfalls „false“.

Beispiele für isinstance()

In diesem Abschnitt werden wir verschiedene Beispiele studieren, um isinstance() zu lernen.

Beispiel: isinstance() Ganzzahlprüfung

Der folgende Code vergleicht den ganzzahligen Wert 51 mit dem Typ int. Er gibt „true“ zurück, wenn der Typ 51 mit int übereinstimmt, andernfalls „false“.

age = isinstance(51,int)
print("age is an integer:", age)

Ausgang:

age is an integer: True

Beispiel: isinstance() Float-Prüfung

In diesem Beispiel vergleichen wir den Float-Wert mit dem Typ Float, dh der Wert 3.14 wird mit dem Typ Float verglichen.

pi = isinstance(3.14,float)
print("pi is a float:", pi)

Ausgang:

pi is a float: True

Beispiel: isinstance() String-Prüfung

message = isinstance("Hello World",str)
print("message is a string:", message)

Ausgang:

message is a string: True

Beispiel: isinstance() Tupelprüfung

Der Code sucht nach einem Tupel (1,2,3,4,5) mit dem Typ Tupel. Es wird „true“ zurückgegeben, wenn die gegebene Eingabe vom Typ Tupel ist, andernfalls „false“.

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

Ausgang:

my_tuple is a tuple: True

Beispiel: isinstance() Set check

Der Code sucht nach einer Menge ({1,2,3,4,5} mit dem Typ „set“. Er gibt „true“ zurück, wenn die gegebene Eingabe vom Typ „set“ ist, andernfalls „false“.

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

Ausgang:

my_set is a set: True

Beispiel: isinstance()-Listenprüfung

Der Code sucht nach einer Liste [1,2,3,4,5] mit Typliste. Es wird „true“ zurückgegeben, wenn die Eingabe vom Typ „Liste“ ist, andernfalls „false“.

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

Ausgang:

my_list is a list: True

Beispiel: isinstance() Diktatprüfung

Der Code sucht nach einem dict({„A“:“a“, „B“:“b“, „C“:“c“, „D“:“d“} mit dem Typ dict. Es wird true zurückgegeben, wenn Die gegebene Eingabe ist vom Typ dict und andernfalls falsch.

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

Ausgang:

my_dict is a dict: True

Beispiel: isinstance()-Test für eine Klasse

Der Code zeigt die Typprüfung der Klasse mit isinstance() . Das Objekt der Klasse wird mit dem Namen der Klasse innerhalb von isinstance() verglichen. Es gibt true zurück, wenn das Objekt zur Klasse gehört, andernfalls false.

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

Ausgang:

_class is a instance of MyClass() True

Unterschied zwischen type() und isinstance() in Python

Art() isinstance ()
Python verfügt über eine integrierte Funktion namens type(), die Ihnen hilft, den Klassentyp der als Eingabe angegebenen Variable zu finden. Python hat eine integrierte Funktion namens isinstance(), die den Wert mit dem angegebenen Typ vergleicht. Wenn der angegebene Wert und Typ übereinstimmen, wird „true“ zurückgegeben, andernfalls „false“.
Der Rückgabewert ist ein Typobjekt Der Rückgabewert ist ein boolescher Wert, dh wahr oder falsch.
class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(type(A()) == A)
print(type(B()) == A)

Ausgang:

True
False

Im Falle eines Typs gibt die Unterklassenprüfung „false“ zurück.

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

Ausgang:

True
True

isinstance() liefert einen wahren Wert, wenn es mit einer Unterklasse überprüft wird.

Häufig gestellte Fragen

`type()` ist eine eingebaute Funktion, die die Klasse eines Objekts zurückgibt. Mit einem Argument erhält man den Objekttyp; mit drei Argumenten (Name, Basisklassen, Wörterbuch) erstellt man eine neue Klasse.

Die Funktion `isinstance(object, classtype)` prüft, ob ein Objekt eine Instanz einer Klasse oder eines Tupels von Klassen ist. Sie gibt `True` zurück, wenn der Typ übereinstimmt, und andernfalls `False`.

`type()` gibt die exakte Klasse eines Objekts zurück und ignoriert Vererbung, während `isinstance()` auch für Unterklassen `True` zurückgibt. Verwenden Sie `isinstance()` für flexible Typüberprüfungen, die Klassenhierarchien berücksichtigen.

Ja. Der Aufruf von `type(name, bases, dict)` mit drei Argumenten gibt dynamisch ein neues Klassenobjekt zurück. `name` ist der Klassenname, `bases` ist ein Tupel der Elternklassen und `dict` enthält die Attribute.

Ja. `isinstance()` gibt `True` zurück, wenn ein Objekt eine Instanz einer Klasse oder einer ihrer Unterklassen ist. Dadurch ist es sicherer als `type()` zum Prüfen vererbter Typen.

KI-Assistenten wie GitHub Copilot vervollständigen automatisch type()- und isinstance()-Prüfungen, generieren Validierungsregeln und schlagen beim Schreiben den richtigen Ansatz für ein gegebenes Objekt vor. Python.

Ja. KI-gestützte Tools können das Einfügen von isinstance()-Schutzmechanismen automatisieren, ungeprüfte Eingaben erkennen und anfällige type()-Vergleiche in sicherere isinstance()-Prüfungen in Ihrer gesamten Codebasis umwandeln.

Die Methode `type()` gibt das Klassenobjekt für den Wert zurück: `list` für eine Liste und `dict` für ein Wörterbuch. Die Ausgabe zeigt eine Form wie `class list` oder `class dict`.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: