Курс 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"
- Возврат нескольких значений
- Нахождение разницы между списками в Python
- Работа с CSV файлами
- Явный импорт переменных
- Проверка на палиндром
- Работа со случайными элементами
- Метод join() для объединения элементов в строку.
- Оператор морж в Python 3.8
- Отладка кода
- Создание namedtuple из словаря
- Функция reduce() в Python
- Метод __index__ в Python
- Установка и использование pyshorteners
- Объединение итераторов
- Управление виртуальными окружениями в Python
- Проверка памяти объекта
- Генерация QR-кодов с библиотекой qrcode
- Вызов внешних программ в Python с помощью sh
- Модуль Operator в Python
- PEP-401: оператор
- Логирование в Python
- Обработка исключений
- Хеши в Python
- Удаление элементов из списка в Python
- Преобразование чисел в слова
- Создание новых функций с помощью functools.partial
- Работа с итераторами через срезы
- Конкатенация строковых литералов
- Лямбда-функции в Python
- Метод rpow в Python
- Работа с датой и временем в Python
- Работа с переменными в Python
- Автоматизация скриптов на AWS Lightsail.
- Замена символов в строке
- Установка и использование Virtualenv
- Поиск элементов BeautifulSoup
- Асинхронное выполнение задач в Python
- Создание директории в Python
- Явный импорт в Python
- Работа с контекстным менеджером Pool
- Метод eq для сравнения объектов
- Подписка на каналы разработчиков
- Умножение строк и списков
- Преобразование многоуровневого словаря
- Избегайте ошибку FileNotFoundError
- Оператор walrus в Python
- Печать списка с помощью метода join
- Colorama: окрашивание текста в Python















