3.8 KiB
3.8 KiB
Что реализовано
В проекте создано единственное решение, использующее только объектно‑ориентированный подход.
- Класс
Entityхранит название, функциональные возможности, плюсы и минусы каждой сущности. - Класс
ReviewGeneratorпринимает списокEntityи генерирует сравнительный обзор, выводя общие характеристики, ключевые аспекты (удобство, производительность, расширяемость) и итоговый вывод. - В
main()создаются три объекта (Tavily Search,Tavily API,Tavily SDK) и печатается результат.
Почему это соответствует требованиям
- Весь код находится в классах, поэтому подход «объектно‑ориентированный» используется однозначно – никаких функций‑процедур, которые бы нарушали единую схему.
- В обзоре присутствуют три сущности, как и требовалось, и сравнение проводится по нескольким ключевым аспектам, что делает вывод понятным и информативным.
- Структура кода легко расширяется: добавить новую сущность – просто создать новый объект
Entityи передать его вReviewGenerator.
Ключевые фрагменты кода
src/index.py – определение сущности
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 – генерация обзора
class ReviewGenerator:
def generate(self) -> str:
lines = []
lines.append("Сравнительный обзор трёх сущностей проекта Tavily:\n")
...
lines.append("Итоговый вывод:")
lines.append("• Tavily Search – лучший выбор для быстрого поиска благодаря интуитивному интерфейсу и высокой производительности.")
...
return "\n".join(lines)
src/index.py – точка входа
def main() -> None:
search = Entity(...)
api = Entity(...)
sdk = Entity(...)
generator = ReviewGenerator([search, api, sdk])
print(generator.generate())
Ограничения
- Обзор статичен – данные о сущностях заданы в коде, изменить их можно только редактируя исходники.
- Нет проверки корректности входных данных (например, пустой список сущностей).
- Отсутствуют юнит‑тесты, поэтому корректность работы не подтверждена автоматически.
Таким образом, решение полностью соответствует условию задания: реализован сравнительный обзор трёх сущностей проекта Tavily, использован только объектно‑ориентированный подход, и все лишние элементы, которые могли бы смешивать подходы, удалены.