【发布时间】:2019-03-14 19:53:57
【问题描述】:
我应该如何解决以下循环依赖?
我有一个文件 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 由数十个辅助函数组成,将公共和私有方法放在一个模块中变得很混乱。
【问题讨论】:
-
你能把
MyEnum类放在A.py和A_impl.py都从中导入的第三个文件中吗?
标签: python python-3.x circular-dependency