1 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊
這是因?yàn)樵赑ython中,如果你嘗試導(dǎo)入同一個模塊兩次,Python將不會第二次在文件系統(tǒng)中搜索。它將使用第一次導(dǎo)入的模塊。您正嘗試導(dǎo)入兩次該模塊main。即使您認(rèn)為這是兩個不同的模塊,從 Python 的角度來看,您也會嘗試導(dǎo)入同一個模塊兩次(因?yàn)樗鼈兌急幻麨閙ain)。您可以在文檔中閱讀有關(guān)模塊緩存系統(tǒng)的更多詳細(xì)信息。
根據(jù)您想要做什么,可能有很多解決方案。這是兩個:
解決方案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
您保留相同的文件名,但指定要導(dǎo)入的子模塊:
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
這是可行的,因?yàn)?Python 在搜索模塊時會在本地目錄中查找,并且您在 和 文件夾所在的相同位置啟動app.pyPython 。rightwrong
添加回答
舉報(bào)