11月4日、Python運営委員会は「遅延インポート(lazy imports)機能の承認をアナウンスした](https://discuss.python.org/t/pep-810-explicit-lazy-imports/104131/465)」。

この記事では、Pythonステアリング・カウンシルが「PEP 810(Explicit lazy imports)」を正式に承認し、今後のPythonにおける“遅延インポート”機構の導入について詳しく紹介する。
Pythonに「遅延インポート」機構が正式採択
Python運営委員会は、PEP 810「Explicit lazy imports」を全会一致で承認した。これにより、Pythonでモジュールを明示的に「遅延読み込み」できる構文が導入される見通しとなった。
このPEPは、以前に提案され却下された「PEP 690(Lazy imports)」を改良したものであり、運営委員会はその改良点と設計の明確さを高く評価している。
「lazy」キーワードを採用
議論の結果、遅延インポートのためのキーワードとして、PEPの提案どおりlazyが正式に採用された。
他の候補としてはdeferなどが検討されたが、実際に使用した際の一貫性や可読性の観点から最終的にlazyが最も適していると判断された。
使用例
lazy import foo
このように、lazyは行の先頭に置かれ、従来のimport構文と同様の位置で視覚的に識別しやすい形式となる。
一方で、次のような構文は採用されないことが明言されている。
from foo lazy import bar  # この形式は不可
運営委員会は、lazyが行頭にあるほうがコード全体の読みやすさを保てると述べている。
新たなAPIの追加提案
運営委員会は、現在のPEPに含まれていないが有用な機能として、次のようなAPIを追加するよう提案している。
sys.get_lazy_imports()
この関数により、現在アクティブな遅延インポートモードを取得できるようにする案である。また、関数名に_modeを付加する案(例:get_lazy_imports_mode())も検討対象として挙げられた。
さらに、モード設定方法の優先順位についてもPEP内で明示すべきとされた。具体的には、
- 環境変数:
$PYTHON_LAZY_IMPORTS=<mode> - コマンドラインオプション:
-X lazy_imports=<mode> - ランタイム設定:
sys.set_lazy_imports() 
の3つが存在するが、それぞれの優先順位を明記する必要があるとされた。
長年の要望に応える機能
運営委員会のBarry Warsaw氏は、Pythonコミュニティが長年望んできたこの機能がようやく実現することへの喜びを表明した。
過去の試みや既存のワークアラウンドを踏まえたうえで、今回の提案はバランスの取れた設計であると総括している。
詳細はPython運営委員会からの公式なアナウンスを参照していただきたい。