Курс Python → Python Аргументы по умолчанию
В Python аргументы по умолчанию могут быть изменяемыми значениями, такими как списки, словари или множества. Когда такой аргумент используется в функции, он сохраняет свое состояние между вызовами. Это означает, что если изменить значение аргумента внутри функции, это изменение будет сохранено и будет видно при следующем вызове функции. Например:
def add_item(item, items=[]):
items.append(item)
return items
print(add_item('apple')) # ['apple']
print(add_item('banana')) # ['apple', 'banana']
В приведенном примере функция add_item принимает элемент и добавляет его в список items. При первом вызове функции список items содержит только ‘apple’, но при следующем вызове ‘banana’ добавляется к списку. Это происходит потому, что список items сохраняет свое состояние между вызовами функции.
Однако следует быть осторожным при использовании изменяемых значений по умолчанию, так как они могут привести к неожиданным результатам. Если вы хотите, чтобы каждый вызов функции использовал новый объект для аргумента по умолчанию, лучше задать его как None и создать новый объект внутри функции. Например:
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
print(add_item('apple')) # ['apple']
print(add_item('banana')) # ['banana']
В этом примере функция add_item проверяет, был ли передан аргумент items. Если нет, то создается новый пустой список. Таким образом, каждый вызов функции создает новый объект для аргумента items, избегая проблем с изменяемыми значениями по умолчанию.
Другие уроки курса "Python"
- Расширение операции побитового «и» в Python
- Просмотр внешних файлов в %pycat
- Срез списка в Python
- Удаление знаков препинания в Python
- Проверка подстроки в строке с помощью in
- Создание коллекций из выражения-генератора
- Курс Data Scientist в медицине
- Метод rename() для переименования файлов и каталогов
- Отправка поздравлений по дню рождения
- Декодирование байтов в строку
- Переменные в Python: сокращение гласных
- Списки: объединение, изменение
- Хеширование паролей с солью
- Обратный список чисел
- Перемешивание списка с shuffle()
- Итерации в Python
- Оформление кода на Python
- Именованные аргументы в Python
- Установка виртуального окружения Python
- Работа с процессами в Python
- Удаление элементов из списка в Python.
- Декораторы в Python
- Ускорение выполнения кода в Python
- Работа с комбинациями в Python.
- Создание словарей и множеств в Python.
- Принципы программирования
- Применение функции к списку
- Обновление множества в Python
- PEP-401: оператор
- Управление контекстом с помощью декоратора contextmanager
- EMOT преобразование эмодзи в текст
- Преобразование строки в число
- Тестирование времени с Freezegun
- Метод lt для сортировки объектов
- Работа с базами данных SQLite
- Списковый компрехеншен.
- Поиск индексов подстроки
- Работа с CSV в Python
- Обратное распространение ошибки
- Создание и инициализация объектов
- Оболочка Python
- Аргумент по умолчанию
- Условное добавление элементов в список
- Управление импортом в Python
- Повторение элементов в Python
- Работа с байтовыми строками в Python
- Замена элементов в списке с помощью генераторов списков
- Группы исключений в Python















