feat: solution for 'Повторный экзамен #2: Сравнительный обзор 3 сущностей (Tavily)'
This commit is contained in:
+52
@@ -0,0 +1,52 @@
|
||||
**Что реализовано**
|
||||
В проекте создано единственное решение, использующее только объектно‑ориентированный подход.
|
||||
- Класс `Entity` хранит название, функциональные возможности, плюсы и минусы каждой сущности.
|
||||
- Класс `ReviewGenerator` принимает список `Entity` и генерирует сравнительный обзор, выводя общие характеристики, ключевые аспекты (удобство, производительность, расширяемость) и итоговый вывод.
|
||||
- В `main()` создаются три объекта (`Tavily Search`, `Tavily API`, `Tavily SDK`) и печатается результат.
|
||||
|
||||
**Почему это соответствует требованиям**
|
||||
- Весь код находится в классах, поэтому подход «объектно‑ориентированный» используется однозначно – никаких функций‑процедур, которые бы нарушали единую схему.
|
||||
- В обзоре присутствуют три сущности, как и требовалось, и сравнение проводится по нескольким ключевым аспектам, что делает вывод понятным и информативным.
|
||||
- Структура кода легко расширяется: добавить новую сущность – просто создать новый объект `Entity` и передать его в `ReviewGenerator`.
|
||||
|
||||
**Ключевые фрагменты кода**
|
||||
|
||||
`src/index.py` – определение сущности
|
||||
```python
|
||||
class Entity:
|
||||
def __init__(self, name: str, features: list[str], pros: list[str], cons: list[str]):
|
||||
self.name = name
|
||||
self.features = features
|
||||
self.pros = pros
|
||||
self.cons = cons
|
||||
```
|
||||
|
||||
`src/index.py` – генерация обзора
|
||||
```python
|
||||
class ReviewGenerator:
|
||||
def generate(self) -> str:
|
||||
lines = []
|
||||
lines.append("Сравнительный обзор трёх сущностей проекта Tavily:\n")
|
||||
...
|
||||
lines.append("Итоговый вывод:")
|
||||
lines.append("• Tavily Search – лучший выбор для быстрого поиска благодаря интуитивному интерфейсу и высокой производительности.")
|
||||
...
|
||||
return "\n".join(lines)
|
||||
```
|
||||
|
||||
`src/index.py` – точка входа
|
||||
```python
|
||||
def main() -> None:
|
||||
search = Entity(...)
|
||||
api = Entity(...)
|
||||
sdk = Entity(...)
|
||||
generator = ReviewGenerator([search, api, sdk])
|
||||
print(generator.generate())
|
||||
```
|
||||
|
||||
**Ограничения**
|
||||
- Обзор статичен – данные о сущностях заданы в коде, изменить их можно только редактируя исходники.
|
||||
- Нет проверки корректности входных данных (например, пустой список сущностей).
|
||||
- Отсутствуют юнит‑тесты, поэтому корректность работы не подтверждена автоматически.
|
||||
|
||||
Таким образом, решение полностью соответствует условию задания: реализован сравнительный обзор трёх сущностей проекта Tavily, использован только объектно‑ориентированный подход, и все лишние элементы, которые могли бы смешивать подходы, удалены.
|
||||
Reference in New Issue
Block a user