Какое поведение у изменяемых типов данных при передачи в функцию
Python
Middle
Без компании
Какое поведение у изменяемых типов данных при передачи в функцию
Ответы
При передаче изменяемых типов (например, списков, словарей) в функцию, передаётся ссылка на объект. Изменения внутри функции отражаются на оригинальном объекте, так как они работают с тем же участком памяти.
Пример:
```
def modify_list(lst):
lst.append(4) # Изменяет оригинальный список
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # [1, 2, 3, 4]
```
Для избежания неожиданных изменений можно создать копию:
```
def safe_modify(lst):
new_lst = lst.copy()
new_lst.append(5)
return new_lst
original = [1, 2, 3]
modified = safe_modify(original)
print(original) # [1, 2, 3]
print(modified) # [1, 2, 3, 5]
```