from abc import ABC, abstractmethod from typing import List class PathFindingStrategy(ABC): @abstractmethod #Находит путь от start до exit_cell def find_path(self, maze, start, exit_cell) -> List: pass @property @abstractmethod def name(self) -> str: #Имя стратегии pass @property def visited_count(self) -> int: #Количество посещенных клеток (заполняется при поиске) return getattr(self, '_visited_count', 0)