Курс Python → Избегание изменяемых аргументов
Избегайте использования изменяемых аргументов по умолчанию в Python, так как это может привести к неожиданным результатам. Вместо этого, хорошей практикой является присваивание None значению аргумента по умолчанию и последующая проверка на то, передано ли какое-либо значение функции для этого аргумента.
Например, рассмотрим функцию, которая принимает список в качестве аргумента и добавляет элемент в этот список. Если использовать изменяемый список в качестве аргумента по умолчанию, то при каждом вызове функции будут использоваться одни и те же данные, что может привести к нежелательным побочным эффектам.
def add_element(item, my_list=None):
if my_list is None:
my_list = []
my_list.append(item)
return my_list
print(add_element(1)) # [1]
print(add_element(2)) # [2]
В данном примере, если не передать список при вызове функции, будет создан новый пустой список, к которому будет добавлен элемент. Таким образом, избегается использование одного и того же списка при каждом вызове функции.
Другие уроки курса "Python"
- Поиск шаблона в начале строки
- Операции с матрицами в Python
- Подчеркивание в REPL
- Структуры данных в Python
- Измерение времени выполнения кода
- PEP-401: оператор
- Работа с классами данных
- Принципы LSP и ISP в Python
- Оператор «not» в Python
- Тип данных TypeVarTuple
- Списковый компрехеншен.
- Функция reversed() в Python
- Метод __imod__ для Python
- Методы __repr__ и __str__ в Python
- Извлечение чисел из текста
- Обучение модели с указанием эпох
- Перевод эмодзи и эмотиконов.
- Повторение элементов в Python
- Функция enumerate() — Python
- Отправка HTTP-запросов с User-Agent
- Метод enumerate() в Python
- Управление IP-адресами через прокси
- Python enumerate() использование
- Проверка на истинность объектов в Python
- Работа с словарями в Python
- Библиотека Rich: форматирование текста
- Метод enumerate() в Python
- Объединение кортежей в Python
- Создание веб-приложения с Flask
- Получение списка кортежей из словаря
- Разделение строк методом split()
- Логический оператор «and» в Python
- Проверка существования переменной с оператором :=
- Работа с Enum в Python3.
- Иерархия классов в Python
- Преобразование данных в Python
- Создание списков в Python
- Множества и frozenset
- Получение частей дроби
- Проверка класса объекта
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- TypedDict для kwargs в Python 3.12
- Копирование объектов в Python
- Получение пути к текущему скрипту с помощью os
- Работа с массивами в Numpy















