Курс 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. Установка пакетов с помощью pip
  3. Извлечение данных из JSON
  4. Сравнение def и lambda функций в Python
  5. Сложные типы данных в Python
  6. Отладка в командной строке
  7. Оператор «and» в Python
  8. Выбор редактора кода.
  9. Переопределение метода
  10. Поиск файлов по шаблону
  11. Резервирование символов в Python
  12. Отправка HTTP-запросов с User-Agent
  13. Протокол управления контекстом
  14. Получение обратного списка чисел
  15. Работа с YAML в Python
  16. Перезагрузка оператора в Python
  17. Генератор надежных паролей
  18. Метод pop() списка
  19. Округление в Python
  20. Взаимодействие с sys
  21. Работа с массивами в Python
  22. Проверка типов с использованием isinstance
  23. Поиск индексов подстроки
  24. Установка и обучение ChatterBot
  25. Описание скриптов в README
  26. Удаление ключей из словаря
  27. Работа с кортежами в Python
  28. Создание словарей с defaultdict
  29. Генерация QR-кодов с библиотекой qrcode
  30. Обработка ошибок в Python
  31. Импорт модулей в Python 3.12
  32. Проверка подстроки в строке
  33. Установка и использование модуля Wikipedia
  34. Генераторы в Python
  35. Отправка поздравлений по дню рождения
  36. Замена символов в строке
  37. Antigravity модуль
  38. Методы обработки строк в Python
  39. Каналы Senior: Python, Java, Frontend, SQL, C++
  40. None в Python: использование и особенности
  41. Округление банкира в Python
  42. Метод __ixor__ для побитового исключающего ИЛИ
  43. Методы в Python
  44. Атрибуты класса и экземпляра
  45. Concrete Paths в Python
  46. Переопределение метода __lshift__
  47. Преобразование данных в Python

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