3

我正在为 GPS IDE 开发插件,我想要它的两个版本:1. GPS 插件 - 使用 GPS 运行 2. 独立应用程序 - 不使用 GPS 运行

插件的功能之一是行高亮。当插件作为独立应用程序运行时,这是不可能的。我为此创建了 gpshelper 类,它导入 GPS 模块。Import 在作为独立应用程序运行时抛出 ImportException(因为 GPS 模块不可用)。我想知道如何将这个 gpshelper 模块注入我的插件。

在高亮方法调用期间执行高亮显示(此方法调用 gpshelper)。

可以吗,当在高亮方法中我这样做时:

try:
    import gpshelper
except ImportError:
    warnings.warn('Program is running as python app (not GPS plugin)')

也许还有其他/更好的方法可以做到这一点?

4

1 回答 1

2

定义一个 gps_highlight 例程作为导入 gpshelper 的尝试部分的一部分。然后从现有代码中调用该例程。在 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
于 2013-03-07T08:37:28.327 回答