Проверьте, импортирован ли метод, из X import Y - PullRequest
0 голосов
/ 17 января 2019

В Python 3.7 я хотел бы импортировать несколько методов и использовать их позже в том же скрипте. Перед этим я хотел бы проверить, правильно ли они импортированы.

На основе этого ответа я могу проверить, полностью ли импортирован модуль в скрипт, но как, если я импортировал только один метод с form from X import Y?

Что я сделал

Я сделал следующий фрагмент:

from shapely.geometry import asShape
from shapely.geometry import Point
import sys

if 'shapely.geometry.asshape' in sys.modules:
  print('Shapely Geometry asshape ok')
else:
  print('Shapely Geometry asshape NOT loaded')

if 'shapely.geometry.point' in sys.modules:
  print('Shapely Geometry point ok')
else:
  print('Shapely Geometry point NOT loaded')

, который дает мне следующие результаты:

Shapely Geometry asshape НЕ загружен

Точка геометрической формы в порядке

Повторяющийся вопрос

Не знаю, это дублирующий вопрос, так как все остальные вопросы здесь, касающиеся SO, касаются проверки того, импортирован ли модуль (с формой import Z), а не только некоторых методов.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Встроенная функция dir () выдаст вам список всех импортов. Там также появятся ваши локально импортированные функции. Вы можете проверить, используя:

'myFunction' in dir ()
0 голосов
/ 17 января 2019

Неважно, импортируете ли вы только одну функцию из модуля или импортируете весь модуль целиком, весь модуль всегда импортируется в sys.modules. Итак, в вашем случае вам нужно будет проверить импортированный модуль вместо функции:

'shapely.geometry' in sys.modules

Проверьте это количество 'модуль импорта' против 'из функции импорта модуля' .

...