我试图理解 Python 中的导入逻辑。
如果您将本教程作为参考,我认为您将无法做到,例如:
from sound.effects import echo
至少,不是来自包装内。
但是,Suds(我感兴趣的一个包)在这里做了类似的事情
suds/suds/builder.py 的片段:
from logging import getLogger
from suds import *
from suds.sudsobject import Factory
..
文件夹结构:
suds/
...no_package_init_file_here...
suds/
__init__.py
builder.py
sudsobject.py
...
这如何以及为什么会起作用?
我认为在包中使用容器包名称是一种“不允许”。根据经验。
现在,我能想到一件事:suds 会将自己添加到 PYTHONPATH 中,从而可以访问每个级别。是这个原因吗?
而且,你们认为 Suds 在这里有一个聪明的解决方案吗?还是有点hacky?
提前致谢。