106 lines
5.4 KiB
Python
106 lines
5.4 KiB
Python
#!/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() |