检查方法是否被导入,from X import Y
Check if method is imported, from X import Y
在 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 NOT loaded
Shapely Geometry point ok
重复问题
我不认为这是一个重复的问题,因为这里关于 SO 的所有其他问题都是关于检查是否导入了一个模块(格式为 import Z
),而不仅仅是一些方法。
无论是只从一个模块导入一个函数,还是导入整个模块本身,整个模块总是导入到 sys.modules
。因此,在您的情况下,您必须检查导入的模块而不是函数:
'shapely.geometry' in sys.modules
内置函数 dir() 将为您提供一个包含所有导入的列表。您本地导入的函数也会出现在那里。您可以检查使用:
'myFunction' in dir ()
在 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 NOT loaded
Shapely Geometry point ok
重复问题
我不认为这是一个重复的问题,因为这里关于 SO 的所有其他问题都是关于检查是否导入了一个模块(格式为 import Z
),而不仅仅是一些方法。
无论是只从一个模块导入一个函数,还是导入整个模块本身,整个模块总是导入到 sys.modules
。因此,在您的情况下,您必须检查导入的模块而不是函数:
'shapely.geometry' in sys.modules
内置函数 dir() 将为您提供一个包含所有导入的列表。您本地导入的函数也会出现在那里。您可以检查使用:
'myFunction' in dir ()