Курс 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
- Область видимости переменных в Python
- Нахождение разницы между списками в Python
- Объединение словарей в Python
- Основы работы со строками в Python
- Очистка данных с Pandas
- Создание инструмента обнаружения плагиата
- Работа с getopt
- Функции с дополнением
- Работа с геоданными с помощью geopy
- Определение объема памяти объекта
- Печать календаря
- Операторы += в Python
- Объединение списков с использованием itertools.chain
- Доступ к локальным переменным
- Списки в Python: синтаксис представления
- Подсчет частотности элементов в Python
- Работа с изображениями Pillow
- Отладка в Python
- Обратное распространение ошибки
- Инициализация структур данных
- Экспорт данных с помощью writefile
- Сумма элементов списка
- Поиск всех индексов подстроки
- Логирование с Logzero
- Классы данных в Python
- Установка User-Agent в Python
- Проверка класса объекта
- Слияние словарей в Python 3.9
- Магические методы в Python
- Руководство по Pymorphy2
- Обработка ошибки IndexError
- Математические функции в Python
- Операции с комплексными числами
- Функция enumerate() — Python
- F-строки в Python 3.8
- Ключевое слово global в Python
- Работа с deque в Python
- Итерации в Python
- Переопределение метода divmod
- Генераторы в Python
- Создание треугольника Паскаля
- Оператор (*) в Python
- Использование html-скриптов в Jupyter Notebook
- Работа с географическими данными в Python
- Управление виртуальными средами в Python
- Передача словаря через **kwargs
- Описание скриптов в README















