Как мне разрешить следующую циклическую зависимость?
У меня есть файл A, который предоставляет методы API и делегирует всю логику бэкэнда в отдельный файл A_impl.
В A.py я также предоставляю Enum, который клиенты должны передавать в качестве аргумента некоторым из методов API:
# A.py
import A_impl
class MyEnum(Enum):
ONE = 1
TWO = 2
THREE = 3
def A(x: MyEnum):
return A_impl._A(x)
A_impl фактически нуждается в MyEnum:
#A_impl.py
from A import MyEnum
def _A(x: MyEnum):
pass
Один из способов решения этой проблемы - просто объединить два модуля, но это в первую очередь сводит на нет цель разделения его на более чистый код.A_impl состоит из десятков вспомогательных функций, и размещение открытых и закрытых методов в одном модуле становится беспорядочным.