Курс 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 Calendar Usage
- Загрузка постов Instagram
- Секреты Python
- Работа с итераторами через срезы
- Удаление первого элемента списка
- Обработка исключений
- Управление сессиями в Python
- Модуль inspect: получение информации о объектах
- Печать месячного календаря
- Создание лямбда-функций
- Нахождение разницы между списками в Python
- Фильтрация входных данных в Python
- Уникальные значения из списка
- Установка и использование модуля Wikipedia
- Генератор чисел Фибоначчи
- Python defaultdict добавление ключа
- Работа с итераторами в Python
- Доступ к локальным переменным
- Переопределение метода __pow__
- Обработка ошибок в JSON данных
- Кортежи в Python: особенности и преимущества
- Вложенные функции в Python
- Асинхронное программирование с asyncio
- Очистка вывода в Python
- Обмен значений переменных в Python
- Логирование с Logzero
- Создание панели меню Tkinter
- Построение графиков в терминале с bashplotlib
- Автоматизация с Python
- Объединение строк с помощью метода join
- Метод invert для побитового отрицания
- Работа со словарями Python
- Работа с itertools
- Работа с асинхронными задачами в Python
- Работа со строками в Python
- Инициализация объекта
- Метод округления чисел
- Различия символов в Python
- Работа с OpenCV
- Создание генераторов в Python
- Работа с комплексными числами
- Функции min(), max(), sum()
- Модуль pprint
- Импорт классов из другого файла
- Измерение времени выполнения с помощью time
- Поиск уникальных и повторяющихся элементов
- Работа с *args и **kwargs в Python
- Правила именования переменных
- Удаление символа из строки
- Цикл for в Python















