Почему я не могу импортировать функцию в Python, используя синтаксис «as»?

#python #python-import

#python #python-импорт

Вопрос:

Почему это работает,

 from sklearn.metrics import mean_squared_error
 

но не другое?

 import sklearn.metrics.mean_squared_error as mse
 

Это дает

Ошибка ModuleNotFoundError: нет модуля с именем ‘sklearn.metrics.mean_squared_error’

Это невозможно, потому mean_squared_error что я предполагаю, что это функция?

Комментарии:

1. @RocketHazmat я знаю, что это работает. Я не хотел получать что-то, что работает, но почему я написал это неправильно.

Ответ №1:

Вы не можете import sklearn.metrics.mean_squared_error , потому что это не модуль, а функция, да. as Часть полностью независима. Так что вы можете, например, from sklearn.metrics import mean_squared_error as mse .

Комментарии:

1. Я знаю, что это подразумевается в названии моего вопроса. Но я хочу знать, почему .

2. Я не понимаю, как я должен отвечать на это. Если «это не модуль» не является адекватным объяснением «почему я получаю сообщение об ошибке no module named... «, тогда я не знаю, что было бы. Вопросы о том, почему разработчики языка приняли те решения, которые они приняли, не подходят для Stack Overflow; если нет авторитетного интервью с дизайнерами, мы строим предположения и высказываем мнения.