un-, veränderliche Datentypen

Spätestens dann, wenn es darum geht, wie der Wert von Variablen durch Funktionen geändert werden kann, kommen wir zu dem Thema: veränderliche und unveränderliche Datentypen.

In Python lassen sich alle Datentypen in diese beiden Gruppen unterteilen.

Viele Basisdatentypen wie int, str, float gehören zur Gruppe der unveränderliche Datentypen. Die meisten Datentypen sind allerdings veränderlich, wir kennen aus dieser Gruppe bisher nur die Liste, also den Datentyp list.

Wenn ich einen String, den ich an eine Funktion übergebe habe, dort ändern will, geht das nur mit Hilfe von return. Das bedeutet aber auch, dass ich dann einen neuen String zurückgebe.

def foo(text):
    res = "<" + text + ">"
    return  res

(Ich könnte den Parameter, der ja eine lokale Variable ist, auch ändern, aber das wäre dann nur lokal wirksam, außerhalb der Funktion würde sich der Wert nicht ändern.)

Wenn ich aber eine Liste, also einen veränderlichen Datentyp an die Funktion übergebe, kann die Liste in der Funktion geändert werden !

def foo(liste):
    liste[0] = 111

etwas = [1, 2, 3]
foo(etwas)
print("geändert ? :", etwas)

Zu diesem Thema gibt es noch zwei Besonderheiten bei veränderlichen Datentypen, die ich später zusammen mit Objekten bespreche.