检查是否从X导入Y导入了方法

时间:2019-01-17 07:50:29

标签: python python-3.x python-import sys python-3.7

在Python 3.7中,我想导入一些方法,并稍后在同一脚本中使用它们。在此之前,我想检查它们是否正确导入。

基于this的答案,我可以检查模块是否已完全导入到脚本中,但是如何仅使用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')

这给了我以下结果:

  

未加载形状几何形状

     

形状几何点正常

重复问题

我不是这个重复的问题,因为SO上的所有其他问题都是关于检查是否导入模块(格式为import Z),而不仅仅是一些方法。

2 个答案:

答案 0 :(得分:1)

从模块中仅导入一个功能还是整个模块本身都没关系,整个模块始终会导入sys.modules中。因此,在您的情况下,您必须检查导入的模块而不是函数:

'shapely.geometry' in sys.modules

查看此问题'import module' vs. 'from module import function'

答案 1 :(得分:1)

内置函数dir()将为您提供包含所有导入的列表。您本地导入的功能也会显示在此处。您可以使用以下方法进行检查:

'myFunction' in dir ()