Курс 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. Атрибуты класса и экземпляра в Python
  2. Область видимости переменных в Python
  3. Нахождение разницы между списками в Python
  4. Объединение словарей в Python
  5. Основы работы со строками в Python
  6. Очистка данных с Pandas
  7. Создание инструмента обнаружения плагиата
  8. Работа с getopt
  9. Функции с дополнением
  10. Работа с геоданными с помощью geopy
  11. Определение объема памяти объекта
  12. Печать календаря
  13. Операторы += в Python
  14. Объединение списков с использованием itertools.chain
  15. Доступ к локальным переменным
  16. Списки в Python: синтаксис представления
  17. Подсчет частотности элементов в Python
  18. Работа с изображениями Pillow
  19. Отладка в Python
  20. Обратное распространение ошибки
  21. Инициализация структур данных
  22. Экспорт данных с помощью writefile
  23. Сумма элементов списка
  24. Поиск всех индексов подстроки
  25. Логирование с Logzero
  26. Классы данных в Python
  27. Установка User-Agent в Python
  28. Проверка класса объекта
  29. Слияние словарей в Python 3.9
  30. Магические методы в Python
  31. Руководство по Pymorphy2
  32. Обработка ошибки IndexError
  33. Математические функции в Python
  34. Операции с комплексными числами
  35. Функция enumerate() — Python
  36. F-строки в Python 3.8
  37. Ключевое слово global в Python
  38. Работа с deque в Python
  39. Итерации в Python
  40. Переопределение метода divmod
  41. Генераторы в Python
  42. Создание треугольника Паскаля
  43. Оператор (*) в Python
  44. Использование html-скриптов в Jupyter Notebook
  45. Работа с географическими данными в Python
  46. Управление виртуальными средами в Python
  47. Передача словаря через **kwargs
  48. Описание скриптов в README

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