Курс Python → Изменяемые и неизменяемые объекты

Для разработчика Python важно понимать, что изменяемые объекты, такие как списки (list), могут быть изменены внутри функции, не требуя их переназначения. Например, если у нас есть список чисел, мы можем изменить его содержимое внутри функции, и это изменение будет отражено в исходном списке. С другой стороны, неизменяемые объекты, такие как числа (int), не могут быть изменены напрямую. Поэтому, при попытке изменить значение числа с помощью операции a -= 1, будет создан новый объект и переменная будет указывать на него, не изменяя исходное значение.

Пример кода, иллюстрирующий это поведение:


def modify_list(lst):
    lst.append(4)
    lst[0] = 10

def modify_number(num):
    num -= 1
    print(num)

my_list = [1, 2, 3]
my_num = 5

modify_list(my_list)
print(my_list)  # Выведет [10, 2, 3]

modify_number(my_num)
print(my_num)  # Выведет 5

В данном примере функция modify_list изменяет список my_list, добавляя элемент 4 и изменяя первый элемент на 10. После вызова функции изменения список my_list действительно изменяется. С другой стороны, функция modify_number пытается уменьшить значение переменной my_num на 1, но так как числа являются неизменяемыми объектами, исходное значение переменной my_num остается неизменным.

Таким образом, в Python важно понимать разницу между изменяемыми и неизменяемыми объектами, чтобы корректно работать с ними в своих программах. Использование этого знания позволит избежать ошибок и написать более эффективный и понятный код.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Взаимодействие с sys
  2. Строки в Python: апострофы и кавычки
  3. Порядок и длина множеств в Python
  4. Исключение NotImplementedError
  5. Аргументы *args и **kwargs
  6. Работа с f-строками 2.0
  7. Библиотека itertools: объединение списков
  8. Измерение времени выполнения кода
  9. Подчеркивание в REPL
  10. Запуск асинхронной корутины
  11. Многопроцессорное программирование в Python
  12. Транспонирование матрицы в Python
  13. Colorama: окрашивание текста в Python
  14. Функции map, filter, reduce
  15. Отладка производительности Python
  16. Получение ID текущего процесса
  17. *args и **kwargs в Python
  18. Метод join() для объединения элементов
  19. Работа с файлами в Python
  20. Округление чисел с помощью round
  21. Генерация UUID в Python
  22. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  23. Преобразование строк в числа в Python
  24. Обновление ключей в Python
  25. Лямбда-функции в Python
  26. Форматирование данных с pprint
  27. Мощь вложенных функций в Python
  28. Метод get для словаря
  29. Перегрузка операторов в Python
  30. Использование модуля math
  31. Структура строк в Python
  32. Избегайте изменяемых аргументов
  33. Оператор in в Python
  34. Проверка класса объекта
  35. Создание итерируемых объектов
  36. Сравнение def и lambda функций в Python
  37. Переименование файлов в Python
  38. Аргумент по умолчанию
  39. Хешируемые ключи в Python
  40. Функция __init__ в Python
  41. Создание новых списков в Python
  42. Оператор is в Python
  43. Поиск с библиотекой Google
  44. Удаление элементов из списка в Python.
  45. Передача параметров в Python
  46. f-строки в формате строк
  47. Работа со словарями с defaultdict из collections

Marketello читают маркетологи из крутых компаний