[問題] import的觀念請教已刪文

看板Python作者 (哥)時間6年前 (2019/03/23 00:13), 6年前編輯推噓1(1010)
留言11則, 3人參與, 6年前最新討論串1/1
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 中的東西。 可否導正一下我的觀念。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.33.121 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1553271211.A.CB9.html

03/23 01:15, 6年前 , 1F
觀念就是: 不要嘗試既當模組(import)又要當script.
03/23 01:15, 1F
※ 編輯: ggirls (223.137.33.121), 03/23/2019 01:47:15

03/23 01:48, 6年前 , 2F
你的意思是不要在b.py中寫__main__測試嗎?
03/23 01:48, 2F

03/23 01:50, 6年前 , 3F
另個問題是,我在寫b.py時不會想到用 from「.a」import...
03/23 01:50, 3F

03/23 01:52, 6年前 , 4F
如何事前判斷後來的引用(test.py)會要在b.py寫.a而非a
03/23 01:52, 4F

03/23 02:04, 6年前 , 5F
你可以用 if __name__ == '__main__' 來判斷,但很難懂
03/23 02:04, 5F

03/23 02:05, 6年前 , 6F
所以說 不要嘗試既當模組(import)又要當script
03/23 02:05, 6F

03/23 03:42, 6年前 , 7F
我寫得太簡要沒講清楚。我說的__main__得確是這樣寫的
03/23 03:42, 7F
※ 編輯: ggirls (223.137.33.121), 03/23/2019 03:43:41

03/23 03:46, 6年前 , 8F
現在主要是test.py引用FolderB.b會報錯;b.py中引用要寫為
03/23 03:46, 8F

03/23 03:46, 6年前 , 9F
import .a不能寫為import a
03/23 03:46, 9F

03/23 11:17, 6年前 , 10F
很久之前寫過這篇 給你參考
03/23 11:17, 10F

03/23 11:17, 6年前 , 11F
03/23 11:17, 11F
文章代碼(AID): #1SbGchov (Python)
文章代碼(AID): #1SbGchov (Python)