2016-12-28 4 views
0

При использовании scikit узнать или другие подобные библиотеки Python, в чем разница между выполнением:В чем разница между импортом целого модуля и импортом только необходимого метода из модуля в python?

import sklearn.cluster as sk 
model = sk.KMeans(n_clusters=n) 

И

from sklearn.cluster import KMeans 
model = KMeans(n_clusters=n) 

Есть ли какие-либо преимущества, используя один путь над другим?

+0

Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [по теме] (http://stackoverflow.com/help/on-topic) и [как спросить] (http://stackoverflow.com/help/how-to-ask) применяются здесь. StackOverflow не является кодовым или учебным сервисом. Это хорошо описано в документации Python и многих текстах, как в печатном виде, так и в режиме онлайн. – Prune

+2

Как пояснялось [здесь] (https://softwareengineering.stackexchange.com/questions/187403/import-module-vs-from-module-import-function/187471) "* Импорт модуля ничего не теряет, модуль всегда полностью импортируется *, поэтому нет способа импортировать только * конкретную вещь из модуля – CoryKramer

+1

@Prune from ** как спросить **: «Примеры: Хорошо: почему использование float вместо int дает мне разные результаты когда все мои входы целые? " - Почему мой вопрос в другой категории, чем пример? –

ответ

1

Ну, в вашем первом примере вы сделали модуль sklearn.cluster доступным как sk, и вы можете обратиться к его членам соответственно. Во втором примере вы импортировали только один член sklearn.cluster, KMeans, поэтому только один из них доступен. В этом разница.

Что касается преимуществ? Сделайте то, что делает ваш код более легким для чтения.

+2

«* вы импортировали только одного члена ... так что только один доступен *« Я был бы осторожен с этой формулировкой. Они на самом деле импортировали * весь модуль *, это просто, что только «kMeans» доступен * – CoryKramer

+0

Это может быть вопрос семантики. Да, весь модуль загружен (как видно из 'sys.modules'), но я имел в виду ключевое слово' import'. – 2rs2ts

Смежные вопросы