Курс 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. Работа с Enum в Python3.
  5. Обработка StopIteration в Python
  6. Расчет времени выполнения программы
  7. Python union() функция — объединение множеств
  8. Синтаксис переменных цикла в Python
  9. Разделение строки на пары ключ-значение.
  10. Форматирование строк с помощью f-строк
  11. Расширение операции побитового «и» в Python
  12. Получение текущей даты и времени
  13. Наиболее частотные элементы с помощью Counter
  14. Разделение строки в Python
  15. Объединение Python и Shell
  16. Извлечение аудио из видео
  17. Конкатенация строковых литералов
  18. Встроенные функции Python
  19. Список переменных в Python
  20. Декоратор Ajax required
  21. Работа с URL-адресами в Python
  22. Оптимизация гиперпараметров с Scikit Optimize
  23. Управление мышью и клавиатурой с Pyautogui
  24. Нахождение самого длинного слова в списке с помощью max
  25. Создание словаря через dict comprehension
  26. Подписка на SelectelNews в Twitter
  27. Подписка на Kaspersky Team
  28. Установка переменной среды в Python
  29. Проверка строки на палиндром
  30. EMOT преобразование эмодзи в текст
  31. Управление сессиями в Python
  32. Импорт модулей и пакетов в Python
  33. Отношения подклассов в Python
  34. Создание списка через итерацию
  35. Создание таблиц в Python с PrettyTable
  36. Обратный список чисел
  37. Структура строк в Python
  38. Оператор распаковки в Python
  39. Создание списка дат
  40. Генераторы списков в Python
  41. Порядок операций в Python
  42. Эффективная конкатенация строк с использованием join()
  43. Повторение и перенос строки
  44. Удаление дубликатов из списка
  45. Удаление элемента по индексу в Python
  46. Профилирование кода на Python

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