Python:包中的模块导入每个oth的问题

2024-04-25 23:42:54 发布

您现在位置:Python中文网/ 问答频道 /正文

路径结构:

base.py
my_module/
    __init__.py
    mod1.py
    mod2.py

在基准.py公司名称:

^{pr2}$

my_模块/mod1.py:

from mod2 import *

def mod1_func():
    mod2_func1("Hello World") # This call will not work.

my_模块/mod2.py:

from mod1 import *

def mod2_func1(input_text):
    print(input_text)

def mod2_func2():
    mod1_func() # This call will work

此代码将出错,因为未定义mod2_func1。如果我直接运行mod1.py(即向__name__=="__main__"块添加代码,它将工作正常。在

这是我真实问题的一个简化示例,它涉及到一个包中的一堆模块,所有模块都需要像这样相互通信。主要的是确保mod1和mod2可以访问本地命名空间中的其他内容,而不管从基调用哪个。我看了大量关于python名称空间、导入和包的文档,当我发现这对每个人来说都令人沮丧时,我感到欣慰,但我还没有找到解决方案。有什么建议吗?在


Tags: 模块frompyimport名称mydefcall