我正在研究GPS IDE的插件,我希望有两个版本: 1. GPS插件 - 使用GPS运行 2.独立应用 - 无GPS运行
插件的一个功能是线条突出显示。当插件作为独立应用程序运行时,这是不可能的。我创建了gpshelper类,它导入了GPS模块。当作为独立应用程序运行时,导入会抛出ImportException(因为GPS模块不可用)。 我想知道如何将这个gpshelper模块注入我的插件。
在高亮方法调用期间执行突出显示(此方法调用gpshelper)。
没关系,在内部突出显示方法中我这样做:
try:
import gpshelper
except ImportError:
warnings.warn('Program is running as python app (not GPS plugin)')
也许还有其他/更好的方法可以做到这一点?
答案 0 :(得分:2)
定义gps_highlight例程作为导入gpshelper的try部分的一部分。然后从现有代码中调用该例程。在except部分中定义一个虚拟gps_highlight函数。这样你就可以保持调用代码的清洁:
import warnings
try:
import gpshelper
def gps_highlight(*args, **kw):
return gpshelper.highlight(*args, **kw)
except ImportError:
warnings.warn('Program is running as python app (not GPS plugin)')
def gps_highlight(*args, **kw):
return None
# after this you can safely call gps_highlight with the right parameters
# as needed by gpshelper.highlight