Bestätigung mit isinstance()
In diesem Schritt lernen Sie, wie Sie die isinstance()
-Funktion in Python verwenden, um zu prüfen, ob ein Objekt eine Instanz einer bestimmten Klasse oder eines bestimmten Typs ist. Dies ist eine weitere Möglichkeit, den Datentyp einer Variablen zu überprüfen, und es kann besonders nützlich sein, wenn Sie mit Vererbung und benutzerdefinierten Klassen arbeiten.
Wir verwenden weiterhin die string_examples.py
-Datei, an der Sie gearbeitet haben. Wir fügen etwas Code hinzu, um zu zeigen, wie isinstance()
funktioniert.
Die isinstance()
-Funktion nimmt zwei Argumente entgegen: das Objekt, das Sie prüfen möchten, und die Klasse oder den Typ, gegen den Sie prüfen möchten. Sie gibt True
zurück, wenn das Objekt eine Instanz der angegebenen Klasse oder des angegebenen Typs ist, und False
sonst.
Fügen Sie die folgenden Zeilen in Ihre string_examples.py
-Datei ein:
## Checking with isinstance()
print(isinstance(string1, str))
print(isinstance(number, int))
print(isinstance(decimal, float))
print(isinstance(boolean, bool))
print(isinstance(string1, int))
Speichern Sie die Datei. Jetzt führen wir das Skript mithilfe des python
-Befehls im Terminal aus:
python ~/project/string_examples.py
Sie sollten die folgende Ausgabe sehen:
Hello, LabEx!
Python is fun
12345
!@#$%^
This is a sentence.
This is a
multi-line string.
This is another
multi-line string.
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
True
True
True
True
False
Wie Sie sehen können, gibt isinstance(string1, str)
True
zurück, weil string1
eine Zeichenkette ist. Ebenso gibt isinstance(number, int)
True
zurück, weil number
eine Ganzzahl ist, und so weiter. Allerdings gibt isinstance(string1, int)
False
zurück, weil string1
keine Ganzzahl ist.
isinstance()
kann auch mit benutzerdefinierten Klassen verwendet werden. Beispielsweise:
class MyClass:
pass
obj = MyClass()
print(isinstance(obj, MyClass))
Fügen Sie diese Zeilen in Ihre string_examples.py
-Datei ein und führen Sie sie erneut aus:
python ~/project/string_examples.py
Sie sollten die folgende Ausgabe sehen:
Hello, LabEx!
Python is fun
12345
!@#$%^
This is a sentence.
This is a
multi-line string.
This is another
multi-line string.
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
True
True
True
True
False
True
Hier gibt isinstance(obj, MyClass)
True
zurück, weil obj
eine Instanz von MyClass
ist.
Die Verwendung von isinstance()
ist eine leistungsstarke Möglichkeit, den Typ eines Objekts in Python zu prüfen, insbesondere wenn Sie mit Vererbung und benutzerdefinierten Klassen arbeiten. Sie ermöglicht es Ihnen, robusteren und flexibleren Code zu schreiben, der verschiedene Datentypen korrekt verarbeiten kann.