Курс 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. Очистка данных с Pandas
  2. Синтаксис переменных цикла в Python
  3. Создание словарей с defaultdict
  4. Блок else в обработке исключений
  5. Работа с пользовательским вводом
  6. Выражения-генераторы в Python
  7. Модуль sys: основы
  8. Именованные кортежи в Python
  9. Python defaultdict добавление ключа
  10. Удаление дубликатов из списка
  11. Конкатенация строковых литералов
  12. Генераторы в Python
  13. Проверка индексов коллекции
  14. Печать в одной строке
  15. Функция sleep() в Python
  16. Разбиение строки в Python
  17. Профилирование данных с Pandas
  18. Активация Matplotlib в Jupyter
  19. Цикл for в Python
  20. Разделение строки на пары ключ-значение.
  21. Переопределение метода __pow__
  22. Применение функции map() в Python
  23. Список импортированных модулей в Python
  24. Сортировка элементов с OrderedDict
  25. Разделение строки с регулярными выражениями
  26. Python UserString — создание подклассов строк
  27. Измерение времени выполнения кода
  28. Генераторы списков в Python
  29. Философия Python
  30. Работа с timedelta
  31. 9 уловок для чистого кода
  32. Переопределение метода xor в Python
  33. Объединение Python и Shell
  34. Создание треугольника Паскаля
  35. Логирование с Loguru
  36. Логирование в Python
  37. Работа со строками
  38. Аргумент по умолчанию
  39. Определение размера папок в Python
  40. Применение команды break
  41. Расчет времени выполнения
  42. Работа с массивами в Numpy
  43. Измерение времени выполнения
  44. Возврат нескольких значений из функции
  45. Обратный список чисел
  46. Структура данных deque в Python

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