1 回答

TA貢獻1865條經驗 獲得超7個贊
這是因為在Python中,如果你嘗試導入同一個模塊兩次,Python將不會第二次在文件系統中搜索。它將使用第一次導入的模塊。您正嘗試導入兩次該模塊main。即使您認為這是兩個不同的模塊,從 Python 的角度來看,您也會嘗試導入同一個模塊兩次(因為它們都被命名為main)。您可以在文檔中閱讀有關模塊緩存系統的更多詳細信息。
根據您想要做什么,可能有很多解決方案。這是兩個:
解決方案1
您可以簡單地將主模塊的名稱更改為不同的名稱:
app.py
right/
main1.py
test_solution1.py
wrong/
main2.py
test_solution2.py
test_solution.py
import main1
def test_subtract():
assert main1.subtract(5, 3) == 2
test_solution2.py
import main2
def test_subtract():
assert main2.subtract(5, 3) == 2
解決方案2
您保留相同的文件名,但指定要導入的子模塊:
test_solution.py
from right import main
def test_subtract():
assert main.subtract(5, 3) == 2
test_solution2.py
from wrong import main
def test_subtract():
assert main.subtract(5, 3) == 2
這是可行的,因為 Python 在搜索模塊時會在本地目錄中查找,并且您在 和 文件夾所在的相同位置啟動app.pyPython 。rightwrong
添加回答
舉報