3

私は GPS IDE のプラグインに取り組んでおり、次の 2 つのバージョンが必要です: 1. GPS プラグイン - GPS で実行 2. スタンドアロン アプリ - GPS なしで実行

プラグインの機能の 1 つは、行の強調表示です。プラグインがスタンドアロン アプリとして実行されている場合、それは不可能です。そのために、GPS モジュールをインポートする gpshelper クラスを作成しました。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

gpshelper をインポートする try 部分の一部として、gps_highlight ルーチンを定義します。次に、既存のコードからそのルーチンを呼び出します。例外部分で、ダミーの 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 に答える