почему невозможно сделать "import gtts.gTTS", тогда как я могу сделать "из gtts import gTTS" в python? - PullRequest
0 голосов
/ 06 июня 2018

here is the screenshot of the error i got in python3

Ошибка говорит о том, что нет модуля с именем "gtts.gTTS" , и много раз получала эту ошибку при импорте других модулей. Итак, можете ли вы рассказать мне, какова логика импорта модулей? Разве мы не можем импортировать класс, используя "."оператор?В чем проблема;Я не могу понять!

#what is the difference between these two codes
import gtts.gTTS
from gtts import gTTS

1 Ответ

0 голосов
/ 06 июня 2018

В отличие от Java, где вы делаете что-то вроде import module.submodule.blah.blah.MyClass, в Python вы можете напрямую импортировать только модули.Если вы хотите импортировать только определенный класс, функцию или другое именованное значение из модуля, вам необходимо использовать синтаксис from ... import ....

По всей вероятности, gtts - это модуль, а gTTS это класс в этом модуле.Следовательно, import gtts.gTTS не имеет смысла, так как gTTS не является модулем (об этом говорит ошибка), вы должны использовать from gtts import gTTS

Например, import os.path работает нормально, поскольку path это подмодуль os, но если бы я хотел использовать функцию exists в path, мне нужно было бы использовать from os.path import exists или import os.path; os.path.exists(...).Я получаю ModuleNotFoundError, если ошибочно пытаюсь import os.path.exsts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...