Курс 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"
- Оператор zip в Python
- Профилирование данных с Pandas
- Проверка условий в Python
- Оптимизация памяти с __slots__
- List Comprehension Tutorial
- Списковое включение в Python
- Progress с библиотекой tqdm
- Импорт объектов из модулей
- Обработка элементов в Python
- Удаление и повторная вставка ключа в OrderedDict
- Работа с CSV файлами в Python
- Замыкания в Python
- Группировка элементов в словарь
- Инверсия списка/строки в Python
- Отладка в Python
- Использование обратной косой черты в f-строках
- Обрезка изображения с Pillow
- JSON в Python: модуль, dump, dumps, load
- Преобразование объекта в строку
- Проверка наличия элемента в списке
- Генераторы в Python
- Создание класса в Python
- Сортировка HTML по CSS-селектору
- Извлечение данных из JSON
- Тестирование с unittest
- Объединение словарей в Python
- Получение текущего времени в Python
- Условные выражения в Python
- Быстрый поиск кода
- Работа с JSON в Python
- Создание таблиц в терминале с PrettyTable
- Функция reversed() в Python
- Python: библиотеки и функции
- Обработка данных в Python
- Разработка игры Pong с turtle
- Циклы в Python
- Множества и frozenset
- Фильтрация списка от «ложных» значений
- Библиотека sh: использование команд bash в Python
- Функции высшего порядка в Python
- Хеширование паролей с солью
- Python 3.12: переиспользование кавычек
- Расширение операции побитового «и» в Python
- Подробная информация о %pinfo
- Defaultdict в Python















