Курс 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 groupby() из itertools: работа с повторяющимися элементами
- Обработка исключений в Python 3
- Обновление данных через PUT запрос
- Встраивание HTML в Jupyter Notebook
- JSON-esque в Python
- Работа с PosixPath() в Python
- Декораторы в Python
- Метод rlshift для битового сдвига
- Работа с аргументами командной строки в Python
- Работа с путями в Python
- Установка User-Agent в Python
- Переопределение метода divmod
- Возврат нескольких значений
- PUT запрос для обновления данных
- Создание Telegram-бота на Python
- Метод lt для сортировки объектов
- Работа с модулем random
- Переворот списка в Python
- Хранение переменных в Python.
- Управление сессиями в Python
- Многопоточность и асинхронное программирование в Python
- PrettyTable: создание таблицы
- Регулярные выражения в Python
- Работа со строками в Python.
- Модуль Operator в Python
- Распаковка элементов последовательности
- Проверка памяти объекта
- HTTP-запросы с библиотекой Requests
- Сортировка данных с лямбда-функциями
- Вложенные циклы в Python
- Разделение строки на пары ключ-значение.
- Перегрузка операторов в Python
- Фильтрация входных данных в Python
- Переопределение метода len
- Оператор space-invader
- Concrete Paths в Python
- Управление памятью в Python
- Установка пакета в Python
- Метод join() для объединения элементов
- Справка по импортированным модулям
- Использование модуля math
- ChainMap.new_child() — добавление нового словаря
- Избегайте ошибку FileNotFoundError
- Combobox в Tkinter
- Асинхронное программирование с asyncio
- Извлечение данных из JSON
- Разделение строки с помощью re.split()















