[問題] 關於import

看板Python作者 (牆玫瑰)時間6年前 (2019/06/20 11:27), 6年前編輯推噓3(303)
留言6則, 4人參與, 6年前最新討論串5/5 (看更多)
有些package有這種情況: from A import B => OK import A A.B => AttributeError 舉個實例: [ex1] from scipy import linalg => OK -------------------- import scipy scipy.linalg => AttributeError [ex2] from sklearn import model_selection => OK ------------------------------- import sklearn sklearn.model_selection => AttributeError 請問這是bug還是故意這樣設計?? 這樣設計的用意是??? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.237.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1561001229.A.C93.html

06/20 11:35, 6年前 , 1F
你舉的例子import的都是subpackage,只有module才能
06/20 11:35, 1F

06/20 11:35, 6年前 , 2F
你分的清楚 套件 跟 模組的差別嗎?
06/20 11:35, 2F

06/20 11:36, 6年前 , 3F
被斷了QQ,你懂我的意思就好
06/20 11:36, 3F
謝謝回覆 module是一個py檔, package是一個folder裡面有很多模組?? 但我實際去看scipy的__init__.py 有這麼一段: # Remove the linalg imported from numpy so that the scipy. # linalg package can be imported. del linalg __all__.remove('linalg') 感覺是原本可以, 但刻意不讓你這麼做的,不是很明白 ※ 編輯: wallrose (223.136.237.28 臺灣), 06/20/2019 12:16:06

06/20 13:05, 6年前 , 4F
如註解所寫,只是先移掉numpy.linalg而已
06/20 13:05, 4F

06/21 01:57, 6年前 , 5F
去看一下什麼是attribute
06/21 01:57, 5F

07/04 00:46, 6年前 , 6F
關鍵在於namespace
07/04 00:46, 6F
文章代碼(AID): #1T2lqDoJ (Python)
文章代碼(AID): #1T2lqDoJ (Python)