Einführung
Der is-Operator in Python wird verwendet, um zu überprüfen, ob zwei Variablen auf dasselbe Objekt im Speicher verweisen. Dies unterscheidet sich vom ==-Operator, der überprüft, ob zwei Variablen denselben Wert haben. In diesem Lab werden wir untersuchen, wie der is-Operator funktioniert und wie er in der Python-Programmierung nützlich sein kann. Dies ist ein wichtiges Konzept, insbesondere wenn es um veränderbare Objekte wie Listen und Wörterbücher geht. In diesem Lab werden wir die Verwendung des is-Operators in Python mit einfachen und komplexen Beispielen untersuchen und sehen, wie er verwendet werden kann, um effizientes und zuverlässiges Code zu schreiben.
Grundlegende Verwendung
In diesem Schritt beginnen wir mit der grundlegendsten Verwendung des is-Operators.
- Öffnen Sie den Python-Interpreter im Terminal.
python3
- Definieren Sie zwei Variablen,
aundb, und weisen Sie beiden die gleiche Zahl zu.
a = "Hello"
b = "Hello"
- Geben Sie die Speicheradresse von
aundbmithilfe derid()-Funktion aus.
print(id(a))
print(id(b))
- Verwenden Sie den
is-Operator, um zu überprüfen, obaundbauf dasselbe Objekt verweisen.
print(a is b)
Die Ausgabe des obigen Codes sollte True sein, da a und b auf dasselbe Objekt im Speicher verweisen.
Unveränderliche vs veränderliche Objekte
In diesem Schritt werden wir untersuchen, wie sich der is-Operator bei unveränderlichen und veränderlichen Objekten verhält.
- Definieren Sie zwei Variablen,
cundd, und weisen Sie beiden eine leere Liste[]zu.
c = []
d = []
- Geben Sie die Speicheradresse von
cunddmithilfe derid()-Funktion aus.
print(id(c))
print(id(d))
- Verwenden Sie den
is-Operator, um zu überprüfen, obcunddauf dasselbe Objekt verweisen.
print(c is d)
Die Ausgabe des obigen Codes sollte False sein, da c und d veränderliche Objekte sind und nicht dasselbe Objekt im Speicher sind.
- Definieren Sie jetzt zwei Variablen,
eundf, und weisen Sie beiden einen ganzzahligen Wert zu.
e = 10
f = 10
- Geben Sie die Speicheradresse von
eundfmithilfe derid()-Funktion aus.
print(id(e))
print(id(f))
- Verwenden Sie den
is-Operator, um zu überprüfen, obeundfauf dasselbe Objekt verweisen.
print(e is f)
Die Ausgabe des obigen Codes sollte True sein, da e und f unveränderliche Objekte sind und dasselbe Objekt im Speicher teilen.
Funktionsparameter
In diesem Schritt werden wir untersuchen, wie der is-Operator mit Funktionsparametern verwendet werden kann.
- Definieren Sie eine Funktion
my_function(), die zwei Parameter,xundy, annimmt.
def my_function(x, y):
print(x is y)
- Rufen Sie die Funktion
my_function()zweimal auf, einmal mit unveränderlichen Objekten und einmal mit veränderlichen Objekten.
my_function(10, 10)
my_function([], [])
Die Ausgabe des ersten Aufrufs sollte True sein und die Ausgabe des zweiten Aufrufs sollte False sein.
Erweiterte Verwendung
In diesem Schritt werden wir einige fortgeschrittene Anwendungen des is-Operators untersuchen.
- Definieren Sie eine Klasse
MyClassmit einem Attributvalue.
class MyClass:
def __init__(self, value):
self.value = value
- Definieren Sie zwei Instanzen der Klasse
MyClass,obj1undobj2, mit dem gleichenvalue.
obj1 = MyClass("Hello")
obj2 = MyClass("Hello")
- Geben Sie die Speicheradresse von
obj1.valueundobj2.valuemithilfe derid()-Funktion aus.
print(id(obj1.value))
print(id(obj2.value))
- Verwenden Sie den
is-Operator, um zu überprüfen, obobj1.valueundobj2.valueauf dasselbe Objekt verweisen.
print(obj1.value is obj2.value)
Die Ausgabe des obigen Codes sollte True sein, da das Attribut value ein unveränderliches Objekt ist und beide Instanzen dasselbe Objekt im Speicher teilen.
- Definieren Sie jetzt zwei Instanzen der Klasse
MyClass,obj3undobj4, mit einem veränderlichen Objekt als ihremvalue.
obj3 = MyClass([])
obj4 = MyClass([])
- Geben Sie die Speicheradresse von
obj3.valueundobj4.valuemithilfe derid()-Funktion aus.
print(id(obj3.value))
print(id(obj4.value))
- Verwenden Sie den
is-Operator, um zu überprüfen, obobj3.valueundobj4.valueauf dasselbe Objekt verweisen.
print(obj3.value is obj4.value)
Die Ausgabe des obigen Codes sollte False sein, da das Attribut value ein veränderliches Objekt ist und beide Instanzen nicht dasselbe Objekt im Speicher teilen.
Zusammenfassung
In diesem Lab haben wir uns mit dem is-Operator in Python beschäftigt und gelernt, wie er verwendet werden kann, um zu überprüfen, ob zwei Variablen auf dasselbe Objekt im Speicher verweisen. Wir haben das Verhalten des is-Operators mit sowohl unveränderlichen als auch veränderlichen Objekten, Funktionsparametern und Klasseninstanzen untersucht. Indem wir den is-Operator verstehen, können wir effizienteres und zuverlässigeres Python-Code schreiben.



