Курс 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. Функция product() из itertools
  2. GitHub в Telegram: подписка на уведомления
  3. Преобразование чисел в Python
  4. Операции со строками в Python
  5. Определение индекса элемента списка
  6. Работа с множествами в Python
  7. Цикл for в Python
  8. Сумма элементов списка
  9. Работа с файлами в Python
  10. Перетасовка списков в Python
  11. Создание словарей в Python
  12. Применение функции к элементам списка
  13. Блок try-except-else
  14. Установка и использование Virtualenv
  15. Функции min(), max(), sum()
  16. Метод classmethod
  17. Проверка типов с помощью isinstance
  18. Запуск файлового сервера
  19. Методы обработки строк в Python
  20. Распаковка элементов массива
  21. PEP-401: оператор
  22. Динамические маршруты во Flask
  23. Список переменных с %who
  24. Метод Enumerate() для списков
  25. Взаимодействие с sys
  26. Обновление данных через PUT запрос
  27. Разделение строки с помощью re.split()
  28. Python Calendar Usage
  29. Обработка исключений в Python
  30. Нахождение максимального значения и его индекса в списке
  31. Установка и использование Telegram API в Python
  32. Копирование объектов в Python
  33. Копирование словарей и списков в Python
  34. Логические значения в Python
  35. Изменения в обработке логических значений
  36. Оптимизация памяти с __slots__
  37. Python Translator: создание локальных переводчиков
  38. Defaultdict в Python
  39. Python Поверхностное Копирование
  40. Реализация операции -= для пользовательского класса
  41. Создание .exe файла с pyinstaller
  42. Округление банкира в Python
  43. Замена элементов в списке с помощью генераторов списков
  44. Работа с асинхронными задачами в Python

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