Sobes.tech
Junior — Middle

Wie ändern sich Objekte von veränderbaren Datentypen, wenn sie als Argumente an eine Funktion übergeben werden?

sobes.tech KI

Antwort von AI

In Python werden Objekte veränderlicher Typen (z.B. Listen, Wörterbücher, Mengen) beim Übergabe an eine Funktion per Referenz auf das Objekt übergeben. Das bedeutet, dass wenn innerhalb der Funktion der Inhalt des Objekts geändert wird (z.B. ein Element zur Liste hinzugefügt wird), diese Änderungen auch außerhalb der Funktion sichtbar sind.

Beispiel:

def add_element(lst):
    lst.append(10)

my_list = [1, 2, 3]
add_element(my_list)
print(my_list)  # Gibt aus: [1, 2, 3, 10]

Wenn jedoch innerhalb der Funktion eine neue Zuweisung an den Parameter erfolgt, beeinflusst dies das externe Objekt nicht:

def replace_list(lst):
    lst = [4, 5, 6]  # Es wird ein neues Objekt erstellt, lokal für die Funktion

my_list = [1, 2, 3]
replace_list(my_list)
print(my_list)  # Gibt aus: [1, 2, 3]

Daher kann man beim Übergeben veränderbarer Objekte an eine Funktion deren Inhalt ändern, und diese Änderungen bleiben außerhalb der Funktion erhalten.