Sobes.tech
Junior — Middle

Jak zmieniają się obiekty zmiennych typów danych podczas przekazywania ich do funkcji jako argumenty?

sobes.tech AI

Odpowiedź od AI

W Pythonie obiekty zmiennych typów (np. listy, słowniki, zbiory) są przekazywane do funkcji przez odniesienie do obiektu. Oznacza to, że jeśli wewnątrz funkcji zmienimy zawartość obiektu (np. dodając element do listy), te zmiany będą widoczne również na zewnątrz funkcji.

Przykład:

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

my_list = [1, 2, 3]
add_element(my_list)
print(my_list)  # Wyświetli: [1, 2, 3, 10]

Jednakże, jeśli wewnątrz funkcji przypiszemy parametr do nowego obiektu, nie wpłynie to na zewnętrzny obiekt:

def replace_list(lst):
    lst = [4, 5, 6]  # Tworzy nowy obiekt, lokalny dla funkcji

my_list = [1, 2, 3]
replace_list(my_list)
print(my_list)  # Wyświetli: [1, 2, 3]

W związku z tym, przekazując obiekty zmienialne do funkcji, można modyfikować ich zawartość, a te zmiany będą zachowywać się na zewnątrz funkcji.