Class
Dieses Kapitel ist immer noch in WIP
class Person:
name = ""
def greeting():
print("hello", name)
Der Unterschied zwischen is
und ==
Der ==
Operator gibt True
zurück, wenn beide Werte, die wir vergleichen wollen, gleich sind,
während is
kontrolliert ob beide Werte die selbe Memoryadresse haben.
Ok... Ich muss mehr ausholen. Jede Variable, die wir erstellen, und jeder Wert, den wir ihr zuweisen, werden im RAM vom Computer gespeichert. Zum Beispiel dieser Pythoncode hier:
my_age = 27
Der Wert von my_age
wird im RAM gespeichert, damit unser Programm sich es auch merken kann
und wir in späteren Zeilen darauf zugreifen können, um damit zu rechnen oder es in der Konsole auszugeben:
print(my_age)
Der ganze Prozess, im RAM abspeichern, den Ort, wo es abgespeichert wurde, und dies mit my_age
zu verlinken,
passiert komplett automagisch im Hintergrund umnd wir müssen uns keine Gedanken drüber machen.
Der Ort, die Adresse, wo die Variable im RAM gespeichert wird, nennt man in Programmierfachchinesisch auch "Pointer".
Der Pointer zeigt auf die Stelle im RAM, in der die Variable existiert.
Hier nochmal visualisiert:
a = 1000
b = "Hello"
c = 1000
d = a + c
Dieser Pythoncode sieht dann ganz abstrakt im RAM so aus:

Wie du sehen kannst, haben a
und c
, obwohl die den selben Wert haben, unterschiedliche Pointer.
Das können wir auch sehen wenn wir is
benutzen:
print(a == c)
print(a is c)
True
False
Das selbe, aber nur umgedreht, gilt natürlich auch für is not
und !=
.
print(a != c)
print(a is not c)
False
True