Курс 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. Контекстный менеджер в Python
  2. Проверка на палиндром
  3. Работа с часовыми поясами в Python.
  4. Ограничение итераций в Python
  5. Python Calendar Usage
  6. Метод index() в Python
  7. Измерение времени выполнения кода
  8. Мониторинг работы программы Py-spy
  9. Инициализация структур данных
  10. Работа с файлами в Python
  11. Функция __init__ в Python
  12. Метод get() в Python
  13. Логические операторы в Python
  14. Обработка исключений с блоком else
  15. Кортежи в Python: особенности и преимущества
  16. Изучение объектов с помощью dir()
  17. Работа с Requests для HTTP-запросов
  18. Нахождение максимального значения и его индекса в списке
  19. Склеивание строк через метод join()
  20. Метод clear для коллекций
  21. Оператор морж в Python 3.8
  22. Нахождение пересечения множеств
  23. Команда %dhist — список посещенных каталогов
  24. Основы Python за 14 дней
  25. Форматирование строк в Python
  26. Оператор == в Python
  27. Сортировка и обратный порядок
  28. Импорт с альтернативным именем
  29. Работа с изображениями Pillow
  30. Цепные операции в Python
  31. Возврат нескольких значений
  32. Инициализация объекта
  33. Группы исключений в Python
  34. Создание виртуальной среды
  35. Проверка подстроки в строке с помощью in
  36. Нахождение разницы между списками в Python
  37. PrettyTable: создание таблицы
  38. Проверка дублей в списке.
  39. Оформление текста в консоли с TermColor
  40. Извлечение аудио из видео
  41. Закрытие файла в Python
  42. Объединение словарей в Python
  43. Роль ключевого слова self
  44. Создание графиков в терминале
  45. Контроль точности вывода чисел
  46. Переворот списка в Python

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