【发布时间】:2015-11-13 14:49:05
【问题描述】:
假设我有一个具有这种结构的 Python 包:
project
+---> module1.py
+---> module2.py
+---> module3.py
现在,我决定将它们分组到子包中:
project
+---> topic1
+---> module1.py
+---> module2.py
+---> topic2
+---> module3.py
让我们进一步假设其他项目中有很多用户(我不想在不知道的情况下更新/发送电子邮件/破坏他们的代码)使用以下内容:
from project.module1 import AwesomeClass
这不再适用于新设计。
我能做的是:
project
+---> module1.py
+---> topic1
+---> module1.py
+---> module2.py
+---> topic2
+---> module3.py
而文件project/module1.py 只包含一行
# For backwards compatability
from project.topic1.module1 import AwesomeClass
虽然这不是很漂亮,而且有点与重构相反。
您是否可以在__init__.py 中添加一些内容以使其正常工作,或者通过其他一些技巧将其链接到它的旧位置而不会那么明显?
【问题讨论】:
标签: python packages python-import backwards-compatibility