Курс 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. UserList в Python: Описание и примеры использования
  3. CLI-инструмент howdoi
  4. Функции в Python: создание и вызов
  5. Операторы += в Python
  6. Работа с CSV файлами
  7. Запуск внешних программ с subprocess
  8. Обновление данных через PUT запрос
  9. Генераторы в Python
  10. Удаление элементов по срезу
  11. Поиск подстроки в строке
  12. Работа с итераторами в Python
  13. Создание матрицы в Python
  14. Оператор морж в Python 3.8
  15. Преобразование Excel в PDF с Spire.XLS
  16. Лямбда-функции в Python
  17. Методы __repr__ и __str__ в Python
  18. Анонимные функции Lambda
  19. Многоточие в Python
  20. Метод __imod__ для Python
  21. Непрерывная проверка в Python
  22. Работа с комплексными числами
  23. Открытие, чтение и закрытие файла
  24. Метод join() для объединения элементов строки
  25. Функции высшего порядка в Python
  26. Создание инструмента обнаружения плагиата
  27. Переворот последовательности
  28. Итерация по копии коллекции
  29. Слияние словарей в Python 3.9
  30. Defaultdict в Python
  31. Структура данных словарь в Python
  32. Наследование в программировании
  33. Метод join() для объединения элементов строки
  34. Pretty-printing JSON в Python
  35. Оптимизация памяти с __slots__
  36. Работа со строками в Python
  37. Срезы в Numpy
  38. Копирование словарей и списков в Python
  39. Настройка Cron
  40. Метод count в Python: почему count(», ») возвращает 4?
  41. Работа с f-строками 2.0
  42. Возврат нескольких значений
  43. Роль object и type в Python

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