Курс 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"
- Функции с необязательными аргументами
- Структурирование именованных констант
- Метод count() для списка
- TypedDict для kwargs в Python 3.12
- Дизассемблирование Python кода
- Удаление элементов по срезу
- Concrete Paths в Python
- Лямбда-функции для min/max
- Использование функции enumerate()
- Проверка существования переменной с оператором :=
- Использование type hints
- Передача словаря через **kwargs
- Преобразование чисел в Python
- Получение значений из словарей
- Создание и удаление объектов
- Enum в Python: создание и использование перечислений
- Просмотр файла в Jupyter Noteboo
- Конструктор в Python
- Генераторы в Python
- Хеши в Python
- Оптимизация памяти с __slots__
- Установка библиотек в Python
- Генераторы списков в Python
- Работа с географическими данными.
- Показ всплывающих окон Tkinter
- Векторизация в Python с NumPy.
- Получение размера объекта с sys.getsizeof()
- Оптимизация создания строк
- Передача аргументов через **arguments
- Обработка элементов в Python
- Операции с кортежами
- Абстракции словарей и множеств в Python
- Colorama: окрашивание текста в Python
- Переворот строки с помощью срезов
- Обратный список чисел
- CSV строка разделение в Python
- Работа со строками в Python
- Метод lt для сортировки объектов
- Переопределение оператора % для объектов
- Транспонирование 2D-массива с помощью zip
- Открытие и запись файлов
- Форматирование объектов с модулем pprint
- Замена текста в Python
- Обработка ошибки IndexError















