Курс 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
- Тестирование времени с Freezegun
- Переопределение метода __lshift__
- Создание словарей в Python
- Декораторы классов
- Участие в сообществе @selectel
- Удаление элемента по индексу
- Работа с комбинациями в Python.
- Декораторы в Python
- Мониторинг памяти с Pympler
- Разность множеств
- Обработка исключений в Python 3
- Работа с timedelta
- Python Метод Union Множеств
- Разбиение строки в Python
- Работа с IP-адресами в Python
- Функции any() и all() в Python
- Преобразование символов с помощью map
- Работа с itertools
- Инициализация структур данных
- Python groupby() из itertools: работа с повторяющимися элементами
- Блок try-except-else
- Тайное преобразование типа ключа
- Удаление элементов из списка в Python
- Таймер обратного отсчета
- Принципы программирования
- Объединение строк с помощью метода join
- Разделение списка на гнппы
- Именование переменных в Python
- Python itertools combinations() — группировка элементов
- Методы __repr__ и __str__ в Python
- Именованные срезы в Python
- Упрощение условных выражений с тернарным оператором
- Метод get для словарей
- Метод join() для объединения элементов строки
- Руководство по Pymorphy2
- Комментарии в Python.
- Создание объекта timedelta
- Удаление файлов в Python
- Метод enumerate() в Python
- Создание копии итератора















