Курс 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"
- Распаковка элементов массива
- Проверка типов с использованием isinstance
- Удаление файлов с shutil.os.remove()
- Многопоточность и асинхронное программирование в Python
- Работа с комбинациями в Python.
- Хеши в Python
- Создание графиков в терминале
- Подсчет элементов с помощью Counter из collections
- Добавление Progressbar в Python
- Зарезервированные слова в Python
- Создание новых списков в Python
- Применение промокода в Много лосося
- IPython и Jupyter Notebook: руководство
- Профилирование кода на Python
- Defaultdict в Python
- Преобразование документов в PDF с помощью Spire.Office
- Проверка элементов списка условием
- Повторение элементов в Python
- Управление контекстом с помощью декоратора contextmanager
- Правила именования переменных
- Создание пар из последовательностей
- Создание обратного итератора
- Лямбда-функции в Python
- Создание списка через цикл
- Генерация UUID в Python
- Функции any() и all() в Python
- Лямбда-функции в defaultdict
- Названия столбцов в Python таблицах
- Измерение времени выполнения в Python
- Участие в LP стейкинге Waves
- Измерение времени выполнения кода
- Создание вложенных циклов for
- Работа с пользовательским вводом
- Получение имени функции с помощью inspect
- Magic Commands — улучшение работы с Python
- Анализ текста на русском языке с помощью Pymystem3
- Выборка чисел
- Метод enumerate() в Python
- Операции с датами в Python
- Активация Matplotlib в Jupyter
- Шаблоны Flask: условия и циклы
- Обмен значений переменных в Python
- Функция zip() для объединения списков
- Установка и использование Virtualenv
- Принципы программирования
- Перевод текста с Python Translator















