Курс 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"

  1. Вывод с переменной через запятую
  2. Блок else в циклах Python
  3. Метод join() для объединения элементов в строку.
  4. Логирование с Logzero
  5. Мониторинг работы программы Py-spy
  6. Именованные срезы в Python
  7. Преобразование списка в словарь через генератор
  8. Профилирование с cProfile
  9. Логический оператор «and» в Python
  10. Фильтрация последовательности
  11. Ключевое слово global в Python
  12. Удаление ключа из словаря в Python
  13. Обработка ошибок в JSON данных
  14. Модуль antigravity: генерация координат
  15. Python OrderedDict и fromkeys() — работа с словарями
  16. Обновление и получение данных в SQLite
  17. Объединение словарей в Python
  18. Основы работы со строками в Python
  19. Группировка элементов Python
  20. Flask — веб-фреймворк Python
  21. Метод __int__ в Python
  22. Делегирование в Python
  23. Инициализация структур данных
  24. Вычисление времени выполнения
  25. Поиск уникальных элементов строкой в Python
  26. Транспонирование 2D-массива с помощью zip
  27. Хеширование паролей с использованием salt
  28. Генераторы в Python
  29. Управление сессиями в Python
  30. Преобразование генераторов в циклы
  31. Переопределение метода sub
  32. Раздувающийся словарь в Python
  33. Профилирование данных с Pandas.
  34. Управление асинхронными задачами на Python.
  35. Метод join() для объединения элементов
  36. Работа с парами ключ-значение
  37. Работа с датой и временем в Python
  38. Управление памятью в numpy.
  39. Выключение компьютера с помощью Python
  40. Назначение максимального и минимального значения переменной в Python.
  41. Метод clear для коллекций
  42. Распаковка аргументов в Python
  43. Преобразование в float

Marketello читают маркетологи из крутых компаний