[問題] import的觀念請教

作者: ggirls (哥)   2019-03-23 00:13:29
import的觀念常常覺得懂了,但是又常常會碰到問題,
想請教關鍵字或該找的說明文件。
FolderA
test.py
FolderB
a.py
b.py
在 test.py 中 import FolderB.b,會報錯找不到 a module,
因為 b.py 有 from a import ...
要在 b.py 中改為 from .a import ... 才會正確執行。
但這樣在 b.py 中的 __main__ 中的測試程式就會報錯找
不到 a。
我的問題是,覺得這樣有點觀念不清,東補西補。
因為都是寫完整個 FolderB 中的檔案,測試完成,
然後才開始寫 test.py。結果一執行又報錯,又要回去改
FolderB 中的東西。
可否導正一下我的觀念。
作者: bibo9901 (function(){})()   2019-03-23 01:15:00
觀念就是: 不要嘗試既當模組(import)又要當script.
作者: ggirls (哥)   2019-03-23 01:48:00
你的意思是不要在b.py中寫__main__測試嗎?另個問題是,我在寫b.py時不會想到用 from「.a」import...如何事前判斷後來的引用(test.py)會要在b.py寫.a而非a
作者: bibo9901 (function(){})()   2019-03-23 02:04:00
你可以用 if __name__ == '__main__' 來判斷,但很難懂所以說 不要嘗試既當模組(import)又要當script
作者: ggirls (哥)   2019-03-23 03:42:00
我寫得太簡要沒講清楚。我說的__main__得確是這樣寫的現在主要是test.py引用FolderB.b會報錯;b.py中引用要寫為import .a不能寫為import a

Links booklink

Contact Us: admin [ a t ] ucptt.com