Курс 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"
- Вывод с переменной через запятую
- Блок else в циклах Python
- Метод join() для объединения элементов в строку.
- Логирование с Logzero
- Мониторинг работы программы Py-spy
- Именованные срезы в Python
- Преобразование списка в словарь через генератор
- Профилирование с cProfile
- Логический оператор «and» в Python
- Фильтрация последовательности
- Ключевое слово global в Python
- Удаление ключа из словаря в Python
- Обработка ошибок в JSON данных
- Модуль antigravity: генерация координат
- Python OrderedDict и fromkeys() — работа с словарями
- Обновление и получение данных в SQLite
- Объединение словарей в Python
- Основы работы со строками в Python
- Группировка элементов Python
- Flask — веб-фреймворк Python
- Метод __int__ в Python
- Делегирование в Python
- Инициализация структур данных
- Вычисление времени выполнения
- Поиск уникальных элементов строкой в Python
- Транспонирование 2D-массива с помощью zip
- Хеширование паролей с использованием salt
- Генераторы в Python
- Управление сессиями в Python
- Преобразование генераторов в циклы
- Переопределение метода sub
- Раздувающийся словарь в Python
- Профилирование данных с Pandas.
- Управление асинхронными задачами на Python.
- Метод join() для объединения элементов
- Работа с парами ключ-значение
- Работа с датой и временем в Python
- Управление памятью в numpy.
- Выключение компьютера с помощью Python
- Назначение максимального и минимального значения переменной в Python.
- Метод clear для коллекций
- Распаковка аргументов в Python
- Преобразование в float















