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 含む) が開く際にハングするケースが報告されています。

出典: Release Python 3.15.0 · python/cpython