Python __init__:循环导入(再次......)

时间:2018-03-09 18:31:41

标签: python python-3.x python-import python-3.6

我想从其实现中划分一些抽象代码,并将实际实现链接为__init__.py中的导入。

我的'model/__init__.py'看起来像这样:

from .estimator import AbstractEstimator
# link default estimator implementation
from impl.tf import TF_Estimator as Estimator

但是,TF_Estimator是'model.AbstractEstimator'

的子类
from model import AbstractEstimator
class TF_Estimator(AbstractEstimator):
    ...

如何解决此循环依赖? 有没有办法“忽略”'TF_Estimator''model/__init__.py'的导入?

我的目标是,我可以运行"from model import Estimator"并最终获得"TF_Estimator"

1 个答案:

答案 0 :(得分:-1)

The solution was pretty simple, thanks to @chepner: Simply use from model.estimator import AbstractEstimator in TF_Estimator; This skips loading 'model/__init__.py'