Курс 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"
- Измерение времени выполнения кода в Python
- Работа с контекст-менеджером «with»
- Установка и загрузка Instaloader
- Оптимизация памяти с __slots__
- Локальные переменные.
- Поиск шаблона в строке
- Удаление элементов из списка
- Принципы SRP и OCP
- Удаление дубликатов из списка
- Методы сравнения множеств
- Оператор assert в Python
- Numpy: использование Ellipsis
- Создание новой даты в Python
- Циклы for в Python
- Декораторы в Python
- Циклы в Python
- Эффективная конкатенация строк с использованием join()
- Тест скорости набора текста на Python
- Декоратор total_ordering для сравнения объектов
- Преобразование генераторов в циклы
- Генераторы списков
- Удаление ключа из словаря в Python
- Работа с массивами в Numpy
- Просмотр атрибутов и методов класса
- Создание словарей и множеств в Python.
- Округление дробей в Python
- Методы Python для работы с данными
- Модуль Operator в Python
- Работа с файлами в Python
- Функции в Python
- Форматирование вывода списков
- Быстрый поиск кода
- Функция rsplit() в Python
- Автоматизация с Python
- Конкатенация строк в Python
- Работа с областями видимости переменных
- Управление виртуальными средами в Python
- Оператор zip в Python
- Частичное применение функций в Python
- Переопределение метода delitem в Python
- Удаление файлов с shutil.os.remove()
- Основные методы NumPy
- Работа с файлами в Python
- Удаление специальных символов
- Многострочные комментарии в Python
- Обновление данных через PUT запрос















