Курс 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. Colorama: окрашивание текста в Python
  4. Поиск уникальных элементов строкой в Python
  5. Использование html-скриптов в Jupyter Notebook
  6. Взаимодействие с sys
  7. Анализ кода — Python
  8. Транспонирование 2D-массива с помощью zip
  9. Оптимизация памяти в Python
  10. Транспонирование матрицы
  11. Возведение в квадрат с помощью itertools
  12. Проверка памяти объекта
  13. Многострочные комментарии в Python
  14. Официальный канал Python в Telegram
  15. Добавление элементов в список: append() vs extend()
  16. Зарезервированные слова в Python
  17. Объединение строк с помощью метода join
  18. Таймер обратного отсчета
  19. Применение функций в Python
  20. Создание OrderedDict
  21. Метод invert для побитового отрицания
  22. Импорт модулей в Python 3.12
  23. Python reversed() функция
  24. UserString в Python
  25. Операции с матрицами в Python
  26. Подсчет элементов в Python
  27. Обход дочерних элементов BeautifulSoup
  28. Преобразование текста в нижний регистр
  29. Python 3.12: Псевдонимы типов
  30. Поиск уникальных и повторяющихся элементов
  31. Отладка производительности Python
  32. Очистка данных с Pandas
  33. Частичное применение функций в Python
  34. Функциональное программирование в Python
  35. Функции в Python: создание и вызов
  36. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  37. Обновление шаблона base.html
  38. Удаление элемента по индексу в Python
  39. Функция product() в Python
  40. Метод rrshift для пользовательских объектов
  41. Оптимизация интернирования строк
  42. Работа с файлами и директориями в Python.
  43. Игра «Угадывание чисел»
  44. Печать календаря
  45. Управление контекстом выполнения кода
  46. Проверка на палиндром
  47. Закрытие файла в Python

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