1

いくつかの遅いインポートがある Python プログラムがあります。必要になるまでインポートを遅らせたいと思います。たとえば、ユーザーがヘルプ メッセージを印刷しようとしているだけの場合、遅いモジュールをインポートするのはばかげています。これを行うための最も Pythonic な方法は何ですか?

私が遊んでいた解決策を答えとして追加します。でも、皆さんがもっとうまくやれることは知っています。

4

2 に答える 2

5

必要な場所にインポートするだけです。モジュールが一度インポートされると、それ以降のインポートが迅速になるようにキャッシュされます。同じモジュールを 20 回インポートすると、最初の 1 つだけが遅くなります。

于 2012-11-05T23:10:28.810 に答える
0

サンプルモジュールとして「sys」を使用すると、次のコードが機能する可能性があります

class Importsys(object):
    def __setattr__(self, name, value):
        global sys
        import sys
        setattr(sys, name, value)
    def __getattribute__(self, name):
        global sys
        import sys
        return getattr(sys, name)
sys = Importsys()

これにより、sys モジュールを使用しようとすると、自動的にインポートされ、sys モジュール変数が置き換えられます。ただし、Just-In-Time インポートが必要なモジュールごとに個別のクラスを作成する必要があります。__import__('sys') 関数を使用できると思いますが、再帰の問題が発生するようです。

于 2012-11-05T23:05:42.540 に答える