Как Python внутренне различает "от модуля импорта пакета" между "от функции импорта модуля"
Если я правильно понимаю, синтаксис Python from ... import ...
можно использовать двумя способами
- из имени пакета имя модуля импорта
- из имени модуля импортировать имя-функции
Я хотел бы немного узнать, как Python внутренне обрабатывает две разные формы. Представьте, например, что интерпретатор получает "из импорта A B", пытается ли интерпретатор определить, является ли A именем пакета / имени модуля, или он внутренне обрабатывает пакеты и модули как один и тот же класс объектов (что-то вроде Linux очень похоже на файлы и каталоги)?
1 ответ
Прежде всего, модуль представляет собой файл Python, который содержит классы и функции. когда вы говорите "Из импорта A", Python ищет A(модуль) в стандартной библиотеке Python, а затем импортирует B(функцию или класс), который является модулем, если он находит A. Если этого не происходит, он выходит и начинает поиск в каталоге, где хранятся пакеты, выполняется поиск имени пакета ( A), а затем, если он его находит, он импортирует имя модуля (B). Если в двух последних процессах происходит сбой, возвращается ошибка.
Надеюсь это поможет.