Python コア開発チームは 10 月 9 日、Python 3.15.0 の最終版を公開しました。元々は 10 月 1 日に PEP 790 のスケジュールで予定されていた最終版が RC3 を挟んで約 1 週間遅れたリリースで、起動時間と標準ライブラリ、プロファイル周りに影響する大きな追加が入っています。
主なポイント
- PEP 810 で
lazyソフトキーワードが入り、lazy import jsonのように書けます。参照された時点で初めてモジュールが読み込まれるため、CLI やスクリプトの起動が速くなります。星印 import や__future__import は lazy 化できず、文法エラーになります。 - 既存コードに触らずに遅延化したいモジュールは
__lazy_modules__に完全修飾名のコンテナを定義しておけば、通常の import 文も遅延扱いになります。 - PEP 814 で組み込み
frozendict型が追加されました。dictのサブクラスではなく、キーと値がハッシュ可能であれば自身もハッシュ可能で、辞書を凍結したいケースでサードパーティに頼らずに済みます。 - PEP 799 で専用の
profilingパッケージと高頻度の統計サンプリング型プロファイラ Tachyon が標準化され、PEP 831 のフレームポインタ常時有効化や Windows 64bit での tail-calling インタプリタと合わせて JIT が 8-13 % 速くなっています。 - 既知の問題として、macOS 27.0 のダイアログ変更の影響で tkinter ベースの GUI (IDLE 含む) が開く際にハングするケースが報告されています。