Курс 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"
- Работа с библиотекой xkcd
- Подсчет элементов с помощью Counter из collections
- Приоритет операций в Python
- Генераторы в Python
- Списки в Python: синтаксис представления
- PUT запрос для обновления данных
- Метод Enumerate() для списков
- Оптимизация методов в Python 3.7
- Кортежи в Python: особенности и преимущества
- Рациональные числа в Python
- Модуль inspect
- Объединение Python и Shell
- Запуск асинхронной корутины
- Библиотека Chartify: руководство
- Искажение имен в Python
- Перевод текста с Python Translator
- Объединение словарей в Python
- Функция reversed() в Python
- Циклы for в Python
- Многоточие в Python
- Работа с модулем random
- Вычисление натурального логарифма в NumPy
- Метод remove() для удаления элемента из списка
- Метод rmatmul для пользовательских матриц
- Руководство по использованию Colorama
- Сортировка и обратный порядок
- Форматирование строк в Python
- Enum в Python
- Перевод двоичного кода в целое число
- Проверка типов с использованием isinstance
- Срезы в Python
- Генерация случайных чисел в Python
- Генерация тестовых данных с factory_boy
- Вывод баннеров
- Функции min(), max(), sum()
- Pillow: работа с изображениями
- Работа с deque в Python
- Работа с буфером обмена на Python
- CLI-инструмент howdoi
- Выключение компьютера с помощью Python
- Возвращение нескольких значений через кортеж или класс
- Проверка условий: all и any
- Логирование с Loguru
- Форматирование строк в Python.
- Декораторы в Python
- Группировка элементов в словарь















