Курс Python → Дефолтные параметры в Python
При определении функций в Python можно использовать дефолтные параметры, которые будут использоваться, если при вызове функции не переданы соответствующие аргументы. Однако, при использовании изменяемых объектов в качестве дефолтных параметров, может возникнуть проблема, когда изменения в этих объектах сохраняются между вызовами функции. Например, если использовать список в качестве дефолтного параметра и изменять его внутри функции, то изменения будут сохранены между вызовами функции.
Для решения этой проблемы можно воспользоваться ключевым словом None при определении аргументов по-умолчанию. Таким образом, при каждом вызове функции будет создаваться новый объект для дефолтного параметра, и изменения внутри функции не будут влиять на предыдущие или последующие вызовы.
def example_func(param=None):
if param is None:
param = []
param.append(1)
return param
print(example_func()) # [1]
print(example_func()) # [1]
В данном примере функция example_func принимает параметр param, который по-умолчанию равен None. Если при вызове функции параметр не передан, то создается новый пустой список. После этого к списку добавляется элемент 1 и он возвращается. При последующих вызовах функции каждый раз будет создаваться новый пустой список, и изменения не будут сохраняться между вызовами.
Другие уроки курса "Python"
- Сумма элементов списка
- Виртуальные среды в Python
- Функция product() из itertools
- Метод __call__ в Python
- Отладка кода
- Декоратор защиты анонимных пользователей
- Работа с аргументами командной строки в Python
- Прокачанный трейсинг ошибок
- Метод eq для сравнения объектов
- Создание объекта timedelta
- Списковые включения в Python
- Округление дробей в Python
- Оператор assert в Python
- CLI-инструмент howdoi
- Управление сессиями в Python
- Работа с словарями в Python
- Поиск наиболее частого элемента
- Переворот списка в Python
- Оператор «or» в Python
- Функция pow() — возвести число в степень
- Итераторы в Python
- ChainMap избыточные ключи
- Функция reduce() в Python
- Создание новых списков в Python
- Monkey Patching в Python
- Импорт модулей и пакетов в Python
- Установка и использование Python-dateutil
- Управление мышью и клавиатурой с Pyautogui
- Карта бомбоубежищ в Москве и Питере
- Имена объектов в Python
- Аннотации типов в Python
- Проверка версии Python
- Работа с YAML в Python
- Операторы Splat и splatty-splat
- Метод is_absolute() для PurePath
- Переопределение метода __and__
- Генерация случайных данных в NumPy
- Получение текущего времени в Python
- Обработка исключений в Python
- Объединение словарей в Python 3.5+
- Работа с defaultdictами в Python
- Библиотека sh: использование команд bash в Python
- Оператор «or» в Python
- Создание задания в Cron
- Изменение списка срезом
- Вакансии в Nebius
- Склеивание строк через метод join()















