当使用scikit学习或其他类似的Python库,有什么做的区别:导入整个模块与从python模块导入所需方法有什么区别?
import sklearn.cluster as sk
model = sk.KMeans(n_clusters=n)
而且
from sklearn.cluster import KMeans
model = KMeans(n_clusters=n)
是否有任何优势,使用一种方法比其他?
当使用scikit学习或其他类似的Python库,有什么做的区别:导入整个模块与从python模块导入所需方法有什么区别?
import sklearn.cluster as sk
model = sk.KMeans(n_clusters=n)
而且
from sklearn.cluster import KMeans
model = KMeans(n_clusters=n)
是否有任何优势,使用一种方法比其他?
那么,在您的第一个示例中,您已将模块sklearn.cluster
作为sk
进行访问,您可以相应地引用其成员。在第二个示例中,您只导入了sklearn.cluster
,KMeans
的一个成员,因此只有该成员可以访问。这是不同的。
至于优点?不管哪一个让你的代码更容易阅读。
“*你只输入了一个成员...所以只有这个成员可以访问*”我会小心这个措辞。他们实际上已经导入了*整个模块*,仅仅是'kMeans'是可访问的* – CoryKramer
这可能是一个语义问题。是的,整个模块被加载(从'sys.modules'中可以看到),但我指的是'import'关键字。 – 2rs2ts
欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [在主题](http://stackoverflow.com/help/on-topic)和[如何提问](http://stackoverflow.com/help/how-to-ask)适用于此处。 StackOverflow不是一个编码或教程服务。 这在Python文档和许多文本中都有很好的介绍,包括硬拷贝和在线文档。 – Prune
正如[这里]所述(https://softwareengineering.stackexchange.com/questions/187403/import-module-vs-from-module-import-function/187471)“*导入模块不会浪费任何东西;模块总是完全导入*“所以没有办法导入*只有*从模块的具体事情 – CoryKramer
@Prune从**如何问**:”例子:好:为什么使用float而不是int给我不同的结果当我所有的输入都是整数?“ - 为什么我的问题与例子不同? –