我正在尝试创建一个模块,它担心我可能做错了什么。我的命名空间遇到了一些问题。我做了一个很像我的例子,它有三个文件,文件名根据评论。
# $PYTHON_PATH/a/b.py
class X:
pass
def make_x():
return X()
我有一个初始化文件
# $PYTHON_PATH/a/__init__.py
from b import make_x
然后我有一个文件
# $PYTHON_PATH/a/c.py
from b import X
x = X()
# For testing
if __name__ == "__main__":
from a import *
y = make_x()
print x.__class__
print y.__class__
print isinstance(x,X)
print isinstance(y,X)
运行时输出c.py
b.X
a.b.X
True
False
也许这只是从模块内导入模块的问题,当我不以这种 hacky 方式(from a import *
)进行测试时,它就会消失。这是真的,还是我构建整个事情的方式有问题。