Курс 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. Функция count() в Python
  4. Преобразование букв в нижний регистр
  5. Принципы программирования
  6. Удаление элемента из списка в Python
  7. Иерархия классов в Python
  8. Python Метод Union Множеств
  9. Проверка надежности пароля на Python
  10. Печать в одной строке
  11. Оператор Walrus в Python
  12. Управление асинхронными задачами с помощью Semaphore
  13. Красивый вывод списка
  14. Работа с пакетами
  15. Проверка индексов коллекции
  16. Генераторы в Python
  17. Роль object и type в Python
  18. Создание словарей в Python
  19. Атрибуты класса и экземпляра в Python
  20. Декораторы в Python
  21. Дизассемблирование Python кода
  22. Метод index() в Python
  23. Генерация фальшивых данных с Faker
  24. Работа со списками
  25. Обработка ошибок в Python
  26. Перевод двоичного кода в целое число
  27. Передача аргументов в Python
  28. Нахождение разницы между списками в Python
  29. Извлечение новостей с помощью newspaper3k
  30. Выход из профиля в Django
  31. Модуль xkcd: добавление юмора в Python
  32. Назначение максимального и минимального значения переменной в Python.
  33. Модуль math: константы π и e
  34. Избегайте использования goto
  35. Функция eval() в Python
  36. Упрощение работы с JSON-данными в Python
  37. Копирование словарей и списков в Python
  38. Уникальность ключей в словаре
  39. Установка и использование pyshorteners
  40. Методы Python для работы с данными
  41. Декоратор total_ordering для сравнения объектов
  42. Генерация случайных чисел в Python
  43. Переопределение унарных операторов
  44. Метод Enumerate() для списков
  45. Создание словаря в Python
  46. Метод enumerate() в Python
  47. Импорт модулей в Python 3.12

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