當使用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給我不同的結果當我所有的輸入都是整數?「 - 爲什麼我的問題與例子不同? –