Курс 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
- Работа с IP-адресами в Python
- Генераторы в Python
- Запрос пароля с помощью getpass
- Принципы программирования
- Оператор += для объединения строк
- Измерение времени выполнения кода
- Освобождение памяти в Python
- Проблема сравнения словарей
- Метод __irshift__ для побитового сдвига вправо
- Нахождение максимального значения и его индекса в списке
- Работа с исключениями в Python
- Методы HTTP запросов в Flask
- Обмен переменными в Jupyter
- Работа с IP-адресами в Python
- Обработка исключений в Python
- Работа с множествами в Python
- Расширение информации об ошибке в Python
- Оператор == в Python
- Оптимизация памяти с __slots__
- Печать в одной строке
- Многострочные комментарии в Python
- Декораторы для регистрации функций
- Блок else в обработке исключений
- Метод округления чисел
- Резервирование символов в Python
- Работа с CSV файлами
- Инверсия списка и строки
- Функция count() в Python
- Разница между датами
- Модуль math: константы π и e
- Присвоение и ссылки
- Lambda Functions in Python
- Подсчет элементов в Python
- Профилирование кода
- Протокол управления контекстом
- Генерация тестовых данных с factory_boy
- Методы обработки строк в Python
- Операторы увеличения и уменьшения в Python
- Работа с deque из collections
- TypedDict для kwargs в Python 3.12
- Установка и использование Logzero
- Метод clear для коллекций
- Python Тесты и Гайды
- Сравнение строк в Python















