#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Программа генерирует сравнительный обзор трёх сущностей, связанных с проектом Tavily. Используется исключительно объектно‑ориентированный подход: все логика реализована в классах. """ class Entity: """ Класс, представляющий отдельную сущность (например, сервис, API, SDK). """ 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 def __str__(self) -> str: return self.name class ReviewGenerator: """ Класс, генерирующий сравнительный обзор для списка сущностей. """ def __init__(self, entities: list[Entity]): if len(entities) < 2: raise ValueError("Нужно минимум две сущности для сравнения.") self.entities = entities def generate(self) -> str: """ Возвращает строку с сравнительным обзором. """ lines = [] lines.append("Сравнительный обзор трёх сущностей проекта Tavily:\n") # Список общих характеристик lines.append("Общие характеристики:\n") for entity in self.entities: lines.append(f"• {entity.name}:") lines.append(f" - Функциональные возможности: {', '.join(entity.features)}") lines.append(f" - Плюсы: {', '.join(entity.pros)}") lines.append(f" - Минусы: {', '.join(entity.cons)}\n") # Сравнение по ключевым аспектам lines.append("Ключевые аспекты сравнения:\n") # 1. Удобство использования lines.append("1. Удобство использования:") for entity in self.entities: lines.append(f" - {entity.name}: {'Высокое' if 'Интуитивный интерфейс' in entity.features else 'Среднее/низкое'}") lines.append("") # 2. Производительность lines.append("2. Производительность:") for entity in self.entities: lines.append(f" - {entity.name}: {'Высокая' if 'Оптимизированный код' in entity.features else 'Средняя/низкая'}") lines.append("") # 3. Расширяемость lines.append("3. Расширяемость:") for entity in self.entities: lines.append(f" - {entity.name}: {'Высокая' if 'Модульная архитектура' in entity.features else 'Средняя/низкая'}") lines.append("") # Итоговый вывод lines.append("Итоговый вывод:") lines.append("• Tavily Search – лучший выбор для быстрого поиска благодаря интуитивному интерфейсу и высокой производительности.") lines.append("• Tavily API – предпочтителен для интеграции в сторонние приложения, но требует более глубоких знаний.") lines.append("• Tavily SDK – удобен для разработчиков, желающих быстро добавить функциональность, однако может быть ограничен в масштабируемости.") return "\n".join(lines) def main() -> None: """ Точка входа программы. Создаёт сущности и выводит сравнительный обзор. """ # Определяем три сущности проекта Tavily search = Entity( name="Tavily Search", features=["Интуитивный интерфейс", "Оптимизированный код", "Модульная архитектура"], pros=["Быстрый поиск", "Низкая нагрузка", "Гибкая настройка"], cons=["Ограниченные API", "Не поддерживает расширенные фильтры"] ) api = Entity( name="Tavily API", features=["Модульная архитектура", "Оптимизированный код"], pros=["Гибкая интеграция", "Подробная документация"], cons=["Сложный в настройке", "Высокая нагрузка при больших запросах"] ) sdk = Entity( name="Tavily SDK", features=["Интуитивный интерфейс", "Модульная архитектура"], pros=["Быстрая интеграция", "Поддержка нескольких языков"], cons=["Ограниченная функциональность", "Не оптимизирован для больших данных"] ) # Генерируем обзор generator = ReviewGenerator([search, api, sdk]) print(generator.generate()) if __name__ == "__main__": main()