Sobes.tech
Junior

Wie werden Argumente an eine Funktion übergeben: per Referenz oder per Wert?

sobes.tech KI

Antwort von AI

In Python werden Argumente nicht ganz per Referenz und nicht ganz per Wert übergeben, sondern durch einen Mechanismus, der oft "Pass by Object Reference" oder "Pass by Sharing" genannt wird.

Das bedeutet Folgendes:

  • Beim Übergabe eines Arguments an eine Funktion wird eine Referenz auf das Objekt übergeben.
  • Wenn das Objekt veränderlich ist (z.B. eine Liste, ein Wörterbuch), sind Änderungen innerhalb der Funktion außerhalb sichtbar.
  • Wenn das Objekt unveränderlich ist (z.B. eine Zahl, ein String, ein Tupel), wird beim Versuch, es innerhalb der Funktion zu ändern, ein neues Objekt erstellt, und das ursprüngliche Objekt außerhalb der Funktion bleibt unverändert.

Veränderliche Objekte:

# Veränderliches Objekt (Liste)
def modify_list(items):
    items.append(4)

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

Unveränderliche Objekte:

# Unveränderliches Objekt (Zahl)
def modify_number(num):
    num = num + 1

my_number = 5
modify_number(my_number)
# my_number bleibt 5