Python では、モジュールのインポートはコードの編成と再利用において重要な役割を果たします。ただし、import 関数を使用して文字列変数からサブモジュールをインポートしようとすると、不可解な結果が生じる可能性があります。
問題:
次のコード:
import matplotlib.text as text x = dir(text) i = __import__('matplotlib.text') y = dir(i) j = __import__('matplotlib') z = dir(j)
3 つのリスト x、y、およびを比較します。 z では予期せぬ違いが明らかになります。具体的には、リスト y には、リスト x に存在する matplotlib.text サブモジュールからのメイン クラスに関する情報が不足しています。
解決策:
import 機能については慎重な理解が必要です。 fromlist パラメーターに空の文字列引数を追加することで、サブモジュール自体をインポートすることを指定できます。
i = __import__('matplotlib.text', fromlist=[''])
これで、変数 i は matplotlib.text サブモジュールを参照し、リスト y には
あるいは、Python 3.1 以降では、importlib を使用できます。パッケージ:
import importlib i = importlib.import_module("matplotlib.text")
追加メモ:
以上が`__import__` が Python でサブモジュールを完全にインポートできないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。