Курс 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"
- Получение текущей даты и времени с помощью datetime
- Сериализация и десериализация объектов
- Декораторы в Python
- Удаление эмодзи с помощью pandas
- Создание словарей с defaultdict
- Инициализация объекта
- Объединение словарей в Python
- Многоточие в Python
- Big O оптимизация
- Оператор (*) в Python
- Быстрый поиск кода
- Создание и инициализация объектов
- Mad Libs Generator
- Запуск внешних программ с subprocess
- Работа с zip-архивами в Python
- Форматирование заголовков в Python
- Условное добавление элементов в список
- Разделение функций на этапы
- Генераторы в Python
- Структура данных словарь в Python
- Блок else в обработке исключений
- Поиск частого элемента
- Метод append() для списка
- Инверсия списка и строки
- Метод split() для разделения строк
- Поиск самого длинного слова в списке с использованием max()
- Обработка исключений в Python
- Установка переменной среды в Python
- Установка random seed в Python
- Сравнение строк в Python
- Экспорт данных с помощью writefile
- Подчеркивание в REPL
- Функция divmod() в Python
- Область видимости переменных
- Преобразование текста в нижний регистр
- Генерация QR-кодов с Python
- Получение пути к текущему скрипту с помощью os
- Функция enumerate() — Python
- Лямбда-функции для min/max
- Изменение логики работы с временем
- Переопределение унарных операторов
- Настройка нарезки списков
- Создание генераторов в Python
- Создание словарей и множеств в Python
- Создание словаря через dict comprehension
- Проверка однородности элементов списка
- Перегрузка операторов в Python
- Генерация UUID в Python















