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