Курс 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. Нахождение разницы между списками в Python
  3. Работа с CSV файлами
  4. Явный импорт переменных
  5. Проверка на палиндром
  6. Работа со случайными элементами
  7. Метод join() для объединения элементов в строку.
  8. Оператор морж в Python 3.8
  9. Отладка кода
  10. Создание namedtuple из словаря
  11. Функция reduce() в Python
  12. Метод __index__ в Python
  13. Установка и использование pyshorteners
  14. Объединение итераторов
  15. Управление виртуальными окружениями в Python
  16. Проверка памяти объекта
  17. Генерация QR-кодов с библиотекой qrcode
  18. Вызов внешних программ в Python с помощью sh
  19. Модуль Operator в Python
  20. PEP-401: оператор
  21. Логирование в Python
  22. Обработка исключений
  23. Хеши в Python
  24. Удаление элементов из списка в Python
  25. Преобразование чисел в слова
  26. Создание новых функций с помощью functools.partial
  27. Работа с итераторами через срезы
  28. Конкатенация строковых литералов
  29. Лямбда-функции в Python
  30. Метод rpow в Python
  31. Работа с датой и временем в Python
  32. Работа с переменными в Python
  33. Автоматизация скриптов на AWS Lightsail.
  34. Замена символов в строке
  35. Установка и использование Virtualenv
  36. Поиск элементов BeautifulSoup
  37. Асинхронное выполнение задач в Python
  38. Создание директории в Python
  39. Явный импорт в Python
  40. Работа с контекстным менеджером Pool
  41. Метод eq для сравнения объектов
  42. Подписка на каналы разработчиков
  43. Умножение строк и списков
  44. Преобразование многоуровневого словаря
  45. Избегайте ошибку FileNotFoundError
  46. Оператор walrus в Python
  47. Печать списка с помощью метода join
  48. Colorama: окрашивание текста в Python

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