Python __import__() 関数
__import__()Python でモジュールを動的にインポートするための組み込み関数です。
__import__()であるimportimport 文の低レベル実装であり、実行時にモジュールを動的にインポートすることを可能にします。プラグインシステムや遅延ロードなどのシナリオで非常に役立ちます。
単語の意味: __import__ 是 Python 的内置导入函数。
基本構文とパラメータ
構文の書式
__import__(name, globals=None, locals=None, fromlist=(), level=0)
パラメータの説明
- パラメータ name:
- 型: 文字列
- 説明: インポートするモジュール名。
- パラメータ fromlist(オプション):
- 型: タプル
- 説明: モジュールからインポートするサブモジュールまたは属性のリスト。
関数の説明
- 戻り値: インポートされたモジュールオブジェクトを返します。
実例
例1:基本的な使い方
実例
# モジュールを動的にインポート
os = __import__('os')
print(os.getcwd()) # 出力: 現在の作業ディレクトリ
# サブモジュールをインポート
requests = __import__('collections', fromlist=['Counter'])
print(requests.Counter) # 出力: <class 'collections.Counter'>
os = __import__('os')
print(os.getcwd()) # 出力: 現在の作業ディレクトリ
# サブモジュールをインポート
requests = __import__('collections', fromlist=['Counter'])
print(requests.Counter) # 出力: <class 'collections.Counter'>
実行結果:
モジュールをインポートする方法。
例2:動的インポート
実例
# 文字列に基づいてモジュールをインポート
module_name = "json"
mod = __import__(module_name)
print(mod.dumps({"key": "value"})) # 出力: {"key": "value"}
# 複数のモジュールを動的にインポート
modules = ['math', 'random', 'datetime']
for name in modules:
mod = __import__(name)
print(f"{name}: {mod.__name__}")
# 遅延インポート(必要に応じて読み込み)
def get_module(mod_name):
return __import__(mod_name)
math_mod = get_module('math')
print(math_mod.sqrt(16)) # 出力: 4.0
module_name = "json"
mod = __import__(module_name)
print(mod.dumps({"key": "value"})) # 出力: {"key": "value"}
# 複数のモジュールを動的にインポート
modules = ['math', 'random', 'datetime']
for name in modules:
mod = __import__(name)
print(f"{name}: {mod.__name__}")
# 遅延インポート(必要に応じて読み込み)
def get_module(mod_name):
return __import__(mod_name)
math_mod = get_module('math')
print(math_mod.sqrt(16)) # 出力: 4.0
実行結果:
動的インポートは実際のアプリケーションでさまざまな用途があります。
__import__()Python の動的インポートメカニズムの中核です。
その他の拡張