例如,在
C++
中我们可以写
namespace MilkyWay{
namespace AlphaCentauri {
int Planets = 4;
}
namespace SolarSys {
int Planets = 8;
}
}
然后将其用作
MilkyWay::SolarSys::Planets
有没有办法在
namespace
中写出类似C++
的内容?或者换句话说,是否有可能不仅在文件夹嵌套级别上扩展名称树,而且还可以在单个文件级别上扩展名称树?
或者。假设我们有以下结构:
sound/ Top-level package
__init__.py Initialize the sound package
formats/ Subpackage for file format conversions
__init__.py
wavread.py
wavwrite.py
...
effects/ Subpackage for sound effects
__init__.py
echo.py
surround.py
...
filters/ Subpackage for filters
__init__.py
equalizer.py
vocoder.py
...
我可以做
from sound.formats import wavread
但为什么我做不到from sound import formats
?
好吧,我的问题类似于在Python中导入包
交易是
但是,找到包目录后,它不会扫描该目录并自动导入所有 .py 文件。
因此,为了完成这项工作,我们需要添加到
__init__.py
所需的子模块(.py
文件),以便 python 导入它。
例如文件
sound/formats/__init__.py
必须包含
from . import wavread, wavwrite
现在
from sound import formats
formats.wavread.do_smth()
会很好用