2024-09-30 06:19:08 发布
网友
TopFolder - -FirstFolder -SecondFolder -main.py
内部主.py地址:
from TopFolder import *
我得到:
Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'TopFolder'
我认为您要做的是将FirstFolder和SecondFolder模块导入main。你知道吗
FirstFolder
SecondFolder
现在,尝试执行from TopFolder import *将导致循环导入,因为main将导入自身(主.py是*)的一部分,它将再次执行import *。。。等等。此外,不鼓励做import *(参见Why is “import *” bad? )。你知道吗
import *
更好的解决方案是将FirstFolder和SecondFolder定义为packages。 然后从main中的那些包中导入特定的模块。你知道吗
TopFolder |- FirstFolder |- __init__.py |- foo1.py |- SecondFolder |- __init__.py |- foo2.py |- main.py
在foo1.py中:
def bar1(): return "bar 1"
在foo2.py中:
def bar2(): return "bar 2"
在主.py地址:
# from TopFolder import * # Don't do this from FirstFolder import foo1 from SecondFolder import foo2 print(foo1.bar1()) print(foo2.bar2())
结果:
$ python3 main.py bar 1 bar 2
我认为您要做的是将
FirstFolder
和SecondFolder
模块导入main。你知道吗现在,尝试执行
from TopFolder import *
将导致循环导入,因为main将导入自身(主.py是*)的一部分,它将再次执行import *
。。。等等。此外,不鼓励做import *
(参见Why is “import *” bad? )。你知道吗更好的解决方案是将FirstFolder和SecondFolder定义为packages。
然后从main中的那些包中导入特定的模块。你知道吗
在foo1.py中:
在foo2.py中:
在主.py地址:
结果:
相关问题 更多 >
编程相关推荐