Курс 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. Хеширование паролей с использованием salt
  2. Комментарии в Python.
  3. Установка Git и AWS CLI
  4. Проверка надежности пароля на Python
  5. Парсинг веб-страниц с Beautiful Soup
  6. Оптимизация гиперпараметров с Scikit Optimize
  7. Методы __repr__ и __str__ в Python
  8. Конструктор в Python
  9. Добавление элемента в список.
  10. Преобразование генераторов в циклы
  11. Улучшение читаемости кода в Python
  12. Создание namedtuple списком полей
  13. Работа с асинхронными задачами в Python
  14. Работа с Telegram API на Python
  15. Работа со временем в Python
  16. Проверка версии Python
  17. Установка Python — Простое руководство
  18. Применение функций в Python
  19. Работа с getopt
  20. Возвращение нескольких значений
  21. capitalize() — изменение регистра первого символа строки
  22. Измерение времени выполнения кода
  23. Каналы Senior: Python, Java, Frontend, SQL, C++
  24. JMESPath в Python
  25. Удаление дубликатов в pandas
  26. Python enumerate() функции
  27. Обновление множества в Python
  28. Сравнение строк в Python
  29. Функциональное программирование в Python
  30. Операции с комплексными числами
  31. Поиск с помощью регулярных выражений
  32. Проблема с изменяемыми аргументами
  33. Проверка версии Python
  34. Итерация по итерируемым объектам
  35. Переименование файлов в Python
  36. Измерение времени выполнения с помощью time
  37. Работа с датой и временем в Python
  38. Область видимости переменных
  39. Структура строк в Python
  40. Измерение времени выполнения кода
  41. Python Тесты и Гайды
  42. Мониторинг памяти с Pympler
  43. Удаление элементов по срезу
  44. Генерация чисел с range()
  45. Поиск HTML-элементов с BeautifulSoup
  46. Переменные в Python
  47. Создание и инициализация объектов

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