type() und isinstance() in Python verstehen: Praktische Beispiele
type() und isinstance() in Python verstehen: Praktische Beispiele
Was ist type() in Python?
Python hat eine eingebaute Funktion namens type(), die hilft, den Klassentyp der als Eingabe übergebenen Variable zu finden. Zum Beispiel erhalten Sie bei einem String die Ausgabe <class 'str'>, für eine Liste <class 'list'>, usw.
Mit dem type()-Befehl können Sie ein einzelnes Argument übergeben, und der Rückgabewert wird der Klassentyp des Arguments sein, Beispiel: type(objekt).
Es ist auch möglich, drei Argumente an type() zu übergeben, also type(name, bases, dict); in diesem Fall gibt es ein neues Typobjekt zurück.
In diesem Tutorial lernen Sie:
- Was ist type() in Python?
- Syntax für type()
- Beispiel für type()
- Beispiel: type() für Klassenobjekte verwenden.
- Beispiel: name, bases und dict in type() verwenden
- Was ist isinstance() in Python?
- Syntax isinstance()
- Beispiele für isinstance()
- Unterschied zwischen type() und isinstance() in Python
Syntax für type():
type() kann auf zwei Arten verwendet werden, wie unten gezeigt:
type(objekt) type(name, bases, dict)
Parameter: type(objekt)
- objekt: Dies ist ein obligatorischer Parameter. Wenn dies der einzige an type() übergebene Parameter ist, gibt es den Typ des Parameters zurück.
Parameter: type(name, bases, dict)
- name: Name der Klasse.
- bases: (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 an type() übergebene Parameter ist, gibt es den Typ des Objekts zurück.
Wenn die an type übergebenen Parameter ein type(Objekt, bases, dict) sind, gibt es in diesem Fall ein neues Typobjekt zurück.
Beispiel für type()
In diesem Beispiel haben wir einen String-Wert, eine Zahl, einen Float-Wert, eine komplexe Zahl, Liste, Tupel, Dict und Set. Wir verwenden die Variablen mit type, um die Ausgabe für jedes zu sehen.
str_liste = "Willkommen bei Guru99"
alter = 50
pi = 3.14
c_num = 3j+10
meine_liste = ["A", "B", "C", "D"]
mein_tupel = ("A", "B", "C", "D")
mein_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
mein_set = {'A', 'B', 'C', 'D'}
print("Der Typ ist : ", type(str_liste))
print("Der Typ ist : ", type(alter))
print("Der Typ ist : ", type(pi))
print("Der Typ ist : ", type(c_num))
print("Der Typ ist : ", type(meine_liste))
print("Der Typ ist : ", type(mein_tupel))
print("Der Typ ist : ", type(mein_dict))
print("Der Typ ist : ", type(mein_set))
Ausgabe:
Der Typ ist : <class 'str'> Der Typ ist : <class 'int'> Der Typ ist : <class 'float'> Der Typ ist : <class 'complex'> Der Typ ist : <class 'list'> Der Typ ist : <class 'tuple'> Der Typ ist : <class 'dict'> Der Typ ist : <class 'set'>
Beispiel: type() für Klassenobjekte verwenden.
Wenn Sie das Objekt überprüfen, das aus einer Klasse mit type() erstellt wurde, gibt es den Klassentyp zusammen mit dem Klassennamen zurück. In diesem Beispiel erstellen wir eine Klasse und überprüfen den Objekttyp, der aus der Klasse test erstellt wurde.
class test:
s = 'testing'
t = test()
print(type(t))
Ausgabe:
<class '__main__.test'>
Beispiel: name, bases und dict in type() verwenden
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, die eine Klassendefinition ausmachen. Der name repräsentiert den Klassennamen, bases ist die Basisklasse, und dict ist das Dictionary der Basisklassenattribute.
In diesem Beispiel werden wir alle drei Parameter, also name, bases und dict in type(), verwenden.
Beispiel:
class MeineKlasse:
x = 'Hello World'
y = 50
t1 = type('NeueKlasse', (MeineKlasse,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))
Ausgabe:
<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}
Wenn Sie alle drei Argumente an type() übergeben, hilft es Ihnen, eine neue Klasse mit Basisklassenattributen zu initialisieren.
Was ist isinstance() in Python?
Python isinstance ist Teil der Python-Einbauffunktionen. Python isinstance() nimmt zwei Argumente entgegen und gibt true zurück, wenn das erste Argument eine Instanz des als zweites Argument gegebenen classinfo ist.
Syntax isinstance()
isinstance(objekt, klassetyp)
Parameter
- objekt: Ein Objekt, dessen Instanz Sie mit klassetyp vergleichen. Es gibt true zurück, wenn der Typ übereinstimmt, sonst false.
- klassen typ: Ein Typ oder eine Klasse oder ein Tupel von Typen und/oder Klassen.
Rückgabewert:
Es gibt true zurück, wenn das Objekt eine Instanz von klassetyp ist, und false, wenn nicht.
Beispiele für isinstance()
In diesem Abschnitt werden wir verschiedene Beispiele studieren, um isinstance() zu lernen.
Beispiel: isinstance() Integer-Prüfung
Der folgende Code vergleicht den Integer-Wert 51 mit Typ int. Er gibt true zurück, wenn der Typ von 51 mit int übereinstimmt, sonst false.
alter = isinstance(51, int)
print("alter ist eine Ganzzahl:", alter)
Ausgabe:
alter ist eine Ganzzahl: True
Beispiel: isinstance() Float-Prüfung
In diesem Beispiel vergleichen wir den Float-Wert mit Typ float, also wird der Wert 3.14 mit Typ float verglichen.
pi = isinstance(3.14, float)
print("pi ist ein float:", pi)
Ausgabe:
pi ist ein float: True
Beispiel: isinstance() String-Prüfung
nachricht = isinstance("Hello World", str)
print("nachricht ist ein String:", nachricht)
Ausgabe:
nachricht ist ein String: True
Beispiel: isinstance() Tupel-Prüfung
Der Code prüft ein Tupel (1,2,3,4,5) mit Typ tuple. Er gibt true zurück, wenn die Eingabe vom Typ tuple ist, sonst false.
mein_tupel = isinstance((1,2,3,4,5), tuple)
print("mein_tupel ist ein Tupel:", mein_tupel)
Ausgabe:
mein_tupel ist ein Tupel: True
Beispiel: isinstance() Set-Prüfung
Der Code prüft ein Set ({1,2,3,4,5}) mit Typ set. Er gibt true zurück, wenn die Eingabe vom Typ set ist, sonst false.
mein_set = isinstance({1,2,3,4,5}, set)
print("mein_set ist ein Set:", mein_set)
Ausgabe:
mein_set ist ein Set: True
Beispiel: isinstance() Liste-Prüfung
Der Code prüft eine Liste [1,2,3,4,5] mit Typ list. Er gibt true zurück, wenn die Eingabe vom Typ list ist, sonst false.
meine_liste = isinstance([1,2,3,4,5], list)
print("meine_liste ist eine Liste:", meine_liste)
Ausgabe:
meine_liste ist eine Liste: True
Beispiel: isinstance() Dict-Prüfung
Der Code prüft ein Dict({"A":"a", "B":"b", "C":"c", "D":"d"}) mit Typ dict. Er gibt true zurück, wenn die Eingabe vom Typ dict ist, sonst false.
mein_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"}, dict)
print("mein_dict ist ein Dict:", mein_dict)
Ausgabe:
mein_dict ist ein Dict: True
Beispiel: isinstance() Test auf einer Klasse
Der Code zeigt die Typprüfung einer Klasse mit isinstance(). Das Objekt der Klasse wird mit dem Klassennamen innerhalb von isinstance() verglichen. Es gibt true zurück, wenn das Objekt zur Klasse gehört, sonst false.
class MeineKlasse:
_nachricht = "Hello World"
_klasse = MeineKlasse()
print("_klasse ist eine Instanz von MeineKlasse(): ", isinstance(_klasse, MeineKlasse))
Ausgabe:
_klasse ist eine Instanz von MeineKlasse() True
Unterschied zwischen type() und isinstance() in Python
| type() | isinstance() |
|---|---|
| Python hat eine eingebaute Funktion namens type(), die hilft, den Klassentyp der als Eingabe gegebenen Variable zu finden. | Python hat eine eingebaute Funktion namens isinstance(), die den Wert mit dem gegebenen Typ vergleicht. Wenn Wert und Typ übereinstimmen, gibt es true zurück, sonst false. |
| Der Rückgabewert ist ein Typobjekt. | Der Rückgabewert ist ein Boolean, also true oder false. |
class A:
meine_listeA = [1,2,3]
class B(A):
meine_listeB = [1,2,3]
print(type(A()) == A)
print(type(B()) == A)
Ausgabe: True False Bei type gibt die Unterklassen-Prüfung false zurück. |
class A:
meine_listeA = [1,2,3]
class B(A):
meine_listeB = [1,2,3]
print(isinstance(A(), A))
print(isinstance(B(), A))
Ausgabe: True True isinstance() gibt einen truthy Wert zurück, wenn mit einer Unterklasse geprüft wird. |
Zusammenfassung:
- Python hat eine eingebaute Funktion namens type(), die hilft, den Klassentyp der als Eingabe gegebenen Variable zu finden. Zum Beispiel, wenn die Eingabe ein String ist, erhalten Sie die Ausgabe als
<class 'str'>, für die Liste<class 'list'>, usw. - Für type() können Sie ein einzelnes Argument übergeben, und der Rückgabewert wird der Klassentyp des gegebenen Arguments sein, z. B. type(objekt).
- Es ist auch möglich, drei Argumente an type() zu übergeben, also type(name, bases, dict), in diesem Fall gibt es Ihnen ein neues Typobjekt zurück.
- Python hat eine eingebaute Funktion namens isinstance(), die den Wert mit dem gegebenen Typ vergleicht. Wenn Wert und Typ übereinstimmen, gibt es true zurück, sonst false. Mit isinstance() können Sie auf String, Float, Int, Liste, Tupel, Dict, Set, Klasse usw. testen.
- Mit der isinstance()-Methode können Sie auf String, Float, Int, Liste, Tupel, Dict, Set, Klasse usw. testen.
Python
- C# Ausdrücke, Anweisungen & Blöcke: Umfassender Leitfaden mit Beispielen
- Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
- Zahlen, Typkonvertierung und Mathematik in Python meistern
- Roboter mit Raspberry Pi und Python bauen: Komplette Anleitung
- Pythons str.count(): Zeichen & Teilstrings zählen mit Beispielen
- Python format()-Strings meistern mit klaren Beispielen
- Pythons String.find()-Methode meistern: Syntax, Beispiele & Alternativen
- Python Lambda-Funktionen meistern: Praxisbeispiele & Best Practices
- Python round()-Funktion erklärt mit praktischen Beispielen
- Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices