Курс 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
  2. Подсчет элементов в Python
  3. Получение срезов итераторов
  4. Сокращение ссылок с pyshorteners
  5. Объединение списков в Python
  6. Вывод букв строки в Python
  7. Метод __call__ в Python
  8. Переопределение метода __and__
  9. Удаление элемента по индексу
  10. Конвертация текстовых чисел с помощью Numerizer
  11. Создание новых функций с помощью functools.partial
  12. Преобразование текста в речь с Python
  13. Добавление элемента в список.
  14. Обратный список чисел
  15. Итерация по коллекции в Python
  16. Класс-оболочка для словарей
  17. Оператор continue в Python
  18. Метод matmul для умножения матриц
  19. Поиск подстроки в строке
  20. Автоматизация действий с Pyautogui
  21. Логирование с Logzero
  22. Быстрый поиск кода
  23. Форматирование заголовков в Python
  24. Создание новых списков через list comprehensions
  25. Работа с файлами в Python
  26. Функция sleep() в Python
  27. Замена атрибута в именованном кортеже
  28. Разделение строки с регулярными выражениями
  29. Удаление элементов из списка в Python
  30. Значения по умолчанию в Python
  31. Метод splitlines() для разделения строк
  32. Создание класса в Python
  33. Работа с библиотекой requests
  34. Операции с комплексными числами
  35. Хеширование паролей с использованием salt
  36. Методы в Python
  37. PEP-401: оператор
  38. Идентификатор объекта в Python
  39. Работа с комплексными числами
  40. Принципы Zen Python
  41. Красивый вывод списка
  42. Создание списка через цикл
  43. Создание вкладок с TKinter
  44. Закрытие файла в Python
  45. Распаковка элементов последовательности
  46. Работа с изображениями Pillow

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