Курс 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. Применение функции к списку
  3. Переворот последовательности
  4. Создание словаря в Python
  5. Работа с IP-адресами в Python
  6. Генераторы в Python
  7. Запрос пароля с помощью getpass
  8. Принципы программирования
  9. Оператор += для объединения строк
  10. Измерение времени выполнения кода
  11. Освобождение памяти в Python
  12. Проблема сравнения словарей
  13. Метод __irshift__ для побитового сдвига вправо
  14. Нахождение максимального значения и его индекса в списке
  15. Работа с исключениями в Python
  16. Методы HTTP запросов в Flask
  17. Обмен переменными в Jupyter
  18. Работа с IP-адресами в Python
  19. Обработка исключений в Python
  20. Работа с множествами в Python
  21. Расширение информации об ошибке в Python
  22. Оператор == в Python
  23. Оптимизация памяти с __slots__
  24. Печать в одной строке
  25. Многострочные комментарии в Python
  26. Декораторы для регистрации функций
  27. Блок else в обработке исключений
  28. Метод округления чисел
  29. Резервирование символов в Python
  30. Работа с CSV файлами
  31. Инверсия списка и строки
  32. Функция count() в Python
  33. Разница между датами
  34. Модуль math: константы π и e
  35. Присвоение и ссылки
  36. Lambda Functions in Python
  37. Подсчет элементов в Python
  38. Профилирование кода
  39. Протокол управления контекстом
  40. Генерация тестовых данных с factory_boy
  41. Методы обработки строк в Python
  42. Операторы увеличения и уменьшения в Python
  43. Работа с deque из collections
  44. TypedDict для kwargs в Python 3.12
  45. Установка и использование Logzero
  46. Метод clear для коллекций
  47. Python Тесты и Гайды
  48. Сравнение строк в Python

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