我有一个名为a
的python包,其中包含两个文件__init__.py
和b
。
a/
a/__init__.py
a/b.py
文件内容:
# a/__init__.py
from .b import *
和
# a/b.py
c = 1
当我在Python中导入a
时,为什么我可以直接使用a.b
?我很困惑,因为我没有在b
中明确导入a/__init__.py
。
如果我使用空 a/__init__.py
,则b
的命名空间中没有a
。所以似乎from .b import *
(或from .b import c
)也导入b
,为什么?
我已经检查了Python文档和SO中的几个帖子,但没有找到相关问题。
我希望b
中的所有内容都来自b
而不是a
本身,然后我可以将a/__init__.py
修改为
# a/__init__.py
from .b import *
del b
这样好吗?