我有一个2层包:
package1
|--package2
| |--function1
| |--function2
|--package3
我正在尝试尽可能避免名称/导入冲突,因此我导入包中的所有成员而不更改其名称空间,然后按名称使用这些函数:
import package1 as package1
package1.package2.function1(...)
然而,翻译给了我以下错误:
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'package2'
这似乎是不合逻辑的,因为package2肯定在package1的命名空间中,我已经导入了它。如果我想继续使用我的函数调用格式,我应该使用哪种导入而不引用package2和package3?
我也尝试了以下内容:
import package1.* (doesn't work)
from package1 import * as package1.* (obviously doesn't work)
from package1 import * (works but bad practice, causes naming conflict)
但是他们没有满足我的需要。