作者wallrose (墙玫瑰)
看板Python
标题[问题] 关於import
时间Thu Jun 20 11:27:07 2019
有些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://webptt.com/cn.aspx?n=bbs/Python/M.1561001229.A.C93.html
1F:推 as30385438: 你举的例子import的都是subpackage,只有module才能 06/20 11:35
2F:推 bugbug777: 你分的清楚 套件 跟 模组的差别吗? 06/20 11:35
3F:→ as30385438: 被断了QQ,你懂我的意思就好 06/20 11:36
谢谢回覆
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
4F:→ as30385438: 如注解所写,只是先移掉numpy.linalg而已 06/20 13:05
5F:推 yushes920179: 去看一下什麽是attribute 06/21 01:57
6F:→ ssivart: 关键在於namespace 07/04 00:46