import
を何とかオーバーライドできるので、インポートする前にモジュールでもっと洗練された操作を行うことができますか?より洗練されたモジュールインポートのために `import`をオーバーライド
例として、アプリケーションの全体的な機能にとって重要でない副機能にmatplotlib
を使用する、より大きなアプリケーションがあります。 matplotlib
がインストールされていない場合は、実際に何もせずに、インポートとmatplotlib
関数へのすべての呼び出しが機能しているように、機能を模擬したいだけです。単純な警告は、モジュールがインストールされていないことを示すだけで、アプリケーションのコア機能を損なうことはありません。 matplotlib
がインストールされていない場合は、matplotlib
APIの動作を模倣した実際のモジュールではなく、MagicMock
オブジェクトを返します。
したがって、import matplotlib...
またはfrom matplotlib import...
はすべて、対応する関数呼び出しによって自動的にオーバーライドされます。私はimport
とfrom ... import
の式を手で置き換えることができましたが、作成したいのですが、たくさんあります。私はむしろimport
を無効にすることによって、この機能を自動的に持っていたいと思います。
これは可能ですか?
いくつかのモジュールで構成される巨大なプロジェクトのように、これをグローバルに行うことはできますか? –
@HendrikWieseこれはプロジェクト全体に影響するはずです。たとえば、このコードを 'a.py'に置き、' import b'を実行すると、 'b.py'はカスタムインポート関数も使用します。これはプログラム全体で共有されている 'builtinsモジュールを変更するためです。 –
私は参照してください。私はそれを試してみます、ありがとう! –