Sobes.tech
Middle

Werden Parameter in Python nach Wert oder nach Referenz übergeben?

sobes.tech KI

Antwort von AI

In Python werden Parameter per Referenz auf das Objekt übergeben (pass-by-object-reference). Das bedeutet, dass die Funktion eine Referenz auf das Objekt erhält, nicht eine Kopie des Wertes. Das Verhalten hängt jedoch von der Änderbarkeit des Objekts ab:

  • Für veränderbare Objekte (z.B. Listen, Wörterbücher) spiegeln Änderungen innerhalb der Funktion das ursprüngliche Objekt wider.
  • Für unveränderbare Objekte (z.B. Zahlen, Strings, Tupel) erzeugt jeder Versuch, das Objekt innerhalb der Funktion zu ändern, ein neues Objekt, das Original bleibt unverändert.

Beispiel:

def modify_list(lst):
    lst.append(4)

my_list = [1, 2, 3]
modify_list(my_list)
print(my_list)  # [1, 2, 3, 4]


def modify_int(x):
    x += 1

num = 5
modify_int(num)
print(num)  # 5

Daher kann man sagen, dass Parameter per Referenz übergeben werden, aber das Verhalten ist für unveränderbare Objekte ähnlich wie bei der Übergabe per Wert.