Курс 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 groupby() из itertools: работа с повторяющимися элементами
  2. Обработка исключений в Python 3
  3. Обновление данных через PUT запрос
  4. Встраивание HTML в Jupyter Notebook
  5. JSON-esque в Python
  6. Работа с PosixPath() в Python
  7. Декораторы в Python
  8. Метод rlshift для битового сдвига
  9. Работа с аргументами командной строки в Python
  10. Работа с путями в Python
  11. Установка User-Agent в Python
  12. Переопределение метода divmod
  13. Возврат нескольких значений
  14. PUT запрос для обновления данных
  15. Создание Telegram-бота на Python
  16. Метод lt для сортировки объектов
  17. Работа с модулем random
  18. Переворот списка в Python
  19. Хранение переменных в Python.
  20. Управление сессиями в Python
  21. Многопоточность и асинхронное программирование в Python
  22. PrettyTable: создание таблицы
  23. Регулярные выражения в Python
  24. Работа со строками в Python.
  25. Модуль Operator в Python
  26. Распаковка элементов последовательности
  27. Проверка памяти объекта
  28. HTTP-запросы с библиотекой Requests
  29. Сортировка данных с лямбда-функциями
  30. Вложенные циклы в Python
  31. Разделение строки на пары ключ-значение.
  32. Перегрузка операторов в Python
  33. Фильтрация входных данных в Python
  34. Переопределение метода len
  35. Оператор space-invader
  36. Concrete Paths в Python
  37. Управление памятью в Python
  38. Установка пакета в Python
  39. Метод join() для объединения элементов
  40. Справка по импортированным модулям
  41. Использование модуля math
  42. ChainMap.new_child() — добавление нового словаря
  43. Избегайте ошибку FileNotFoundError
  44. Combobox в Tkinter
  45. Асинхронное программирование с asyncio
  46. Извлечение данных из JSON
  47. Разделение строки с помощью re.split()

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