Курс 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. Преобразование чисел в восьмеричную строку
  2. Деление в Python
  3. Просмотр внешних файлов в %pycat
  4. Округление чисел с помощью round
  5. Пропуск начальных строк с помощью dropwhile()
  6. Избегайте использования goto
  7. Удаление ключа из словаря
  8. Присвоение значений переменным в Python
  9. Открытие, чтение и закрытие файла
  10. Создание словаря и множества
  11. Бинарный поиск
  12. Разделение строки на пары ключ-значение.
  13. Описание скриптов в README
  14. Импорт модулей в Python 3.12
  15. Условные выражения в Python
  16. ChainMap избыточные ключи
  17. Генератор бросков кубиков
  18. Работа с срезами в Numpy
  19. Создание уникального проекта
  20. Работа с многоуровневыми словарями в Python
  21. Подсчет элементов с помощью Counter из collections
  22. Создание даты из строки ISO
  23. Экспорт функций в Python
  24. Создание словарей и множеств в Python
  25. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  26. Наследование в программировании
  27. Логирование в Python
  28. Удаление элементов из списка в Python
  29. Изменение элемента списка
  30. Создание панели меню Tkinter
  31. Парсинг веб-страниц с Beautiful Soup
  32. Форматирование строк в Python
  33. Работа с множествами в Python
  34. Просмотр внешнего файла в Python
  35. Генерация случайных чисел в Python
  36. Запуск асинхронной корутины
  37. Руководство по использованию Colorama
  38. Сохранение Unicode в JSON
  39. Метод ne для сравнения объектов
  40. Экспорт внешнего файла с помощью writefile
  41. Оператор объединения словарей
  42. Делегирование в Python
  43. Основы работы с os

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