Курс 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
- Работа с кортежами в Python
- Удаление символов новой строки в Python.
- Python 3.12: переиспользование кавычек
- Получение значений из словарей
- Избегание циклических зависимостей классов в Python
- Принципы SRP и OCP
- Python Enumerate
- Счетчик ссылок в Python
- Модуль itertools: комбинации и перестановки
- Блок else в обработке исключений
- Метод rxor для операции побитового исключающего «или»
- Работа со строками в Python
- Создание директории в Python
- Использование подчеркивания в REPL
- Сумма элементов списка
- Тип CodeType в Python.
- Проверка списка: any() и all()
- Объединение списков в Python
- Генераторы в Python
- Рациональные числа в Python
- Мониторинг работы программы Py-spy
- Работа с датой и временем в Python
- Сортировка в Python
- Установка пакета в Python
- Метод __iand__ для пользовательских классов
- Работа с функцией next() в Python
- Работа с прокси в Python
- Метод lt для сортировки объектов
- Возврат нескольких значений из функции
- Стать Python-разработчиком
- Разбиение текста в Python
- Равенство и идентичность в Python
- Создание циклической ссылки
- Управление сессиями в Python
- Итерация по коллекции в Python
- Python enumerate() функции
- Замена текста в Python
- Циклы в Python
- Изменение объектов в Python
- Метод __irshift__ для Python
- Метод rmatmul для обратного матричного умножения
- Метод gt в Python
- Оператор assert в Python
- Генератор списка в Python
- Компиляция регулярных выражений
- Извлечение чисел из текста















