1. Почему нельзя делать мутабельные типы аргументами функции по умолчанию?
Если мутабельный тип данных используется как дефолтный аргумент, то изменения, сделанные в этом объекте внутри функции, сохранятся при последующих вызовах функции. Это связано с тем, что дефолтные аргументы вычисляются только один раз при определении функции, а не при каждом вызове.
2. Что такое внедрение зависимостей (Dependency Injection) в FastAPI?
Dependency Injection в FastAPI — это механизм, который позволяет передавать зависимости (например, функции, объекты, настройки) в обработчики маршрутов. Это упрощает управление кодом и повышает его тестируемость.
3. Является ли range итератором?
Да, объект
range является итератором в Python. Это последовательность чисел, которая генерируется по запросу и используется в циклах. В Python 3 range не является списком, а является более эффективным объектом, который генерирует числа по мере их запроса.4. Какой синтаксис создания генераторов?
Генераторы в Python создаются с использованием функции, которая содержит ключевое слово
yield. Генератор возвращает элементы по одному, и его выполнение приостанавливается на каждом yield и возобновляется с того места, где оно было приостановлено. Генераторы экономят память, так как данные генерируются по мере необходимости, а не сохраняются в памяти.5. Как в памяти Python хранятся списки и кортежи?
Списки в Python — это изменяемые объекты, которые хранят ссылки на другие объекты, что позволяет изменять их содержимое. Кортежи — неизменяемые объекты, которые также хранят ссылки на другие объекты, но их содержимое нельзя изменить после создания. Списки обычно занимают больше памяти, чем кортежи, из-за необходимости поддержания изменяемости.
#mutable #arguments #function #fast_api #dependency #injection #range #iterator #iterable #yield #generator #memory #tuple #list