Курс 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"
- Взаимодействие с sys
- Строки в Python: апострофы и кавычки
- Порядок и длина множеств в Python
- Исключение NotImplementedError
- Аргументы *args и **kwargs
- Работа с f-строками 2.0
- Библиотека itertools: объединение списков
- Измерение времени выполнения кода
- Подчеркивание в REPL
- Запуск асинхронной корутины
- Многопроцессорное программирование в Python
- Транспонирование матрицы в Python
- Colorama: окрашивание текста в Python
- Функции map, filter, reduce
- Отладка производительности Python
- Получение ID текущего процесса
- *args и **kwargs в Python
- Метод join() для объединения элементов
- Работа с файлами в Python
- Округление чисел с помощью round
- Генерация UUID в Python
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Преобразование строк в числа в Python
- Обновление ключей в Python
- Лямбда-функции в Python
- Форматирование данных с pprint
- Мощь вложенных функций в Python
- Метод get для словаря
- Перегрузка операторов в Python
- Использование модуля math
- Структура строк в Python
- Избегайте изменяемых аргументов
- Оператор in в Python
- Проверка класса объекта
- Создание итерируемых объектов
- Сравнение def и lambda функций в Python
- Переименование файлов в Python
- Аргумент по умолчанию
- Хешируемые ключи в Python
- Функция __init__ в Python
- Создание новых списков в Python
- Оператор is в Python
- Поиск с библиотекой Google
- Удаление элементов из списка в Python.
- Передача параметров в Python
- f-строки в формате строк
- Работа со словарями с defaultdict из collections















