Python 3.15.0a5がリリースされたので今後のスケジュールや新機能についてまとめてみたDeep Insider AI Practice

2026年10月に向けて、Python 3.15の開発は順調に進んでいるようです(いろいろあるようですが)。5番目のαリリースが出たこのタイミングで今後のスケジュールやPEPを基にどんな機能が追加されそうかをまとめてみました。

» 2026年01月20日 05時00分 公開
[かわさきしんじDeep Insider編集部]
「Deep Insider AI Practice」のインデックス

連載目次

 2026年1月13日にPython 3.15.0a4がリリースされました。その翌日には何とPython 3.15.0a5もリリースされています。a4は2025年12月23日版のmainブランチを使ってビルドされていたため、急遽a5がリリースされたようです(今回はαリリースを「a1」などと、βリリースを「b1」などと表記します)。

Python 3.15.0a5のリリースの発表 Python 3.15.0a5のリリースの発表
Python Insiderより引用

 エクストラリリースとなったPython 3.15.0a5は(もちろん)Python 3.15の5つ目のαリリースです。以下では、今後のリリーススケジュールの予定と、Python 3.15に追加される予定の新機能についてまとめてみました。


かわさき

 どうもHPかわさきです。

 Deep Insiderでは、Pythonの新バージョンが出るたびに、その新機能についてチェックして、その中から幾つかを皆さんにご紹介するのが恒例です。今回は新機能の紹介というよりは、「今後のリリース予定」と「こんなPEP(Python Enhancement Proposal)がPython 3.15で追加されるのかもね」について紹介します。βリリースが始まれば、Python 3.15の新機能も固まるでしょうから、そこから徐々にそれらを取り上げていくことにしましょう。

 いやー、a4が出たからと原稿を書いている間にa5がリリースされているのに気が付いてよかった……。


Python 3.15a5の概要

 既に述べましたが、Python 3.15.0a5はPython 3.15正式版に対する5つ目のαリリースです。Python 3.15.0a1からa3までは新機能の中でも大きな変更点としては以下のものが挙げられていました。

  • PEP 799:高解像度・低負荷なサンプリングプロファイラおよび専用パッケージ
  • PEP 686:PythonのデフォルトエンコーディングがUTF-8に
  • PEP 782:bytesオブジェクトを作成するPyBytesWriter C APIの追加
  • エラーメッセージの改善

かわさき

 エラーメッセージの改善はこのところのPythonのバージョンアップがあるたびに変更点として挙げられています。実際、例外が発生したときにその内容が分かりやすくなったなぁと感じている方も多いはず。


 エラーメッセージの改善はさておき、a5(というかちゃんとビルドされていたらa4)では何か大きくこれらに追加されたものがあったのでしょうか。実はこんな感じです。

  • PEP 799:高解像度・低負荷なサンプリングプロファイラおよび専用パッケージ
  • PEP 686:PythonのデフォルトエンコーディングがUTF-8に
  • PEP 782:bytesオブジェクトを作成するPyBytesWriter C APIの追加
  • JITコンパイラが著しく改善。x86-64 Linuxで4%から5%のパフォーマンス改善(標準的なインタプリターと比較)。また、AArch64 macOSでは7%から8%の速度向上(末尾呼び出し型のインタプリターと比較)
  • エラーメッセージの改善

 JITコンパイラの機能向上が追加されただけとなっています。

 なお、ここでいう「標準的なインタプリター」「末尾呼び出し型のインタプリター」の詳細については「Windows版Python 3.15はなぜ高速化するのか? その技術的根拠を読み解く」を見ていただくとして、前者はバイトコードの処理をswitch-caseのループで行うもので、後者は末尾呼び出しと呼ばれる手法で行うものです(後者の方が前者よりも高速)。

 PythonにおけるJITは、「コピー&パッチ」といわれる手法を使っています。Pythonでは例えば2項の加算を行うときには最初にBINARY_OPというバイトコードが内部的に使われて、それが特殊化と呼ばれる手法によりBINARY_OP_ADD_INTなどの(特定の型の演算子を対象にした)バイトコードへと置き換えられます。さらに、そのコードの実行が続けられると、micro-opsと呼ばれるさらに微少なコード単位へと変換が進んで、最終的にはJITのコピー&パッチ機構によりネイティブなマシンコードに変換されます(最適化うんぬんのお話は省略)。

 このJITの仕組みにもアップデートされたところがあり、その結果が(高速と呼ばれている)末尾呼び出し型のインタプリターよりもさらに高速にコードを実行できるようになったのでしょう(詳しくはβリリースの後に調べるかもしれません)。

 とはいえ、a5の段階では大きな変更点はそれほど多くはないようです。αリリースの進化とともに上記のリストに変更点が追加されているのが楽しみですね。


かわさき

 それほど多くないように思いますよね。でも、「What's new in Python 3.15」を見ると「もう最後まで読む気がしない」ってくらいに変更点などが記載されています。関係者の皆さんには感謝の言葉しかありません。


Python 3.15のリリーススケジュール

 Python 3.15はβリリースに切り替わるまでに8回のαリリースが予定されています。つまり、この後には3回のαリリースが行われることになります(今回のようなエクストラリリースがない限りはa8まで)。以下に3.15.0正式版までのスケジュールを一覧しておきます。

  • 3.15.0 a1:2025年10月14日(完了)
  • 3.15.0 a2:2025年11月19日(完了)
  • 3.15.0 a3:2025年12月16日(完了)
  • 3.15.0 a4:2026年1月13日(完了)
  • 3.15.0 a5:2026年1月14日(完了)
  • 3.15.0 a6: 2026年02月10日
  • 3.15.0 a7: 2026年03月10日
  • 3.15.0 a8: 2026年04月07日
  • 3.15.0 b1:2026年05月05日(ここからは機能追加はなし)
  • 3.15.0 b2:2026年05月26日
  • 3.15.0 b3:2026年06月16日
  • 3.15.0 b4:2026年07月14日
  • 3.15.0 candidate 1:2026年07月28日
  • 3.15.0 candidate 2:2026年09月01日
  • 3.15.0 final:2026年10月1日

 4月までは1カ月に一度αリリースが続き、その間は新機能の追加などが行われます。5月にはβリリースに切り替わって実装がこなれていくのでしょう。7月にはβリリースが一度、候補版(candidate)のリリースが一度あり、8月を挟んで9月には候補版がもう一度リリースされた後、2026年10月にはPython 3.15.0正式版がリリースされる予定です。

 では、2026年5月に予定される最初のβリリースまでにどんな機能が追加されるのでしょうか。

PEPから見るPython 3.15の新機能

 PEP 0にはPEP(Python Enhancement Proposals)が一覧されています。ここからPython 3.15に新機能として追加されそうなものを抜き出したのが以下の表です(この他にもPython 3.15のリリーススケジュールに関するPEP 790などもありますが、ここでは除外)。

 状態が「final」なものはそのPEPの参照実装がソースコードのリポジトリにマージされています。つまり、Python 3.15でそれらの機能が実現するのはほぼ確定です。ここでは「PyBytesWriter C APIの追加」と「math.integerモジュールの追加」がこれに当たります。

 状態が「Accepted」なものはPythonにそのPEPが導入されることが採択されたことを意味します(PEPが意味のあるものになっており、最低でもその機能のプロトタイプ実装がある)。参照実装が進められている状態です。

 状態が「Draft」なものはそのPEPについての議論やブラッシュアップが進められていることを意味します。実際にAcceptedになるかどうかは未定です。

 2026年1月16日時点の『What's new in Python 3.15』にはリリースハイライトとして以下が挙がっています(これは冒頭に述べたものと同じ)。 

  • PEP 799:プロファイリングツール
  • PEP 686:デフォルトエンコーディングがUTF-8
  • PEP 782:PyBytesWrite C API
  • JITコンパイラが著しく改善
  • エラーメッセージの改善

 このうち、PEP 799とPEP 686は「Accepted」で、PEP 782が「Final」になっています。もう1つの「Final」状態のPEP 791はどうかというと、リリースハイライトではなく「New modules」という箇所に記載されています。

Python 3.15では整数を取り扱う数学関数を含んだmath.integerモジュールが導入されるよ Python 3.15では整数を取り扱う数学関数を含んだmath.integerモジュールが導入されるよ
What's new in Python 3.15』より引用

 こうしたことから想像できるのは、状態が「Accepted」なものがPython 3.15の新機能として早期にメインブランチに追加されるであろうということです。というわけで、上の表から状態が「Accepted」になっているけれど、What's new in Python 3.15には掲載されていないものを列挙してみました。

 この辺りはPython 3.15に実装される可能性は高そうですね。

 PEP 728はTypedDictに関して「定義されていない追加的な要素の型を指定したり、追加的な要素そのものを禁止したり」できるようにするものです。PEP 793はCで書かれた拡張モジュールの新しいエントリポイントを導入するものです。PEP 798は内包表記やジェネレータ式での「*」や「**」を用いたアンパッキングを可能にするものです。

 最後のものだけカンタンなコードを見てみましょう。

listoflist = [[1, 2],  [3, 4], [5, 6]]

flatten = [item for outer in listoflist for item in outer]
print(flatten)  # [1, 2, 3, 4, 5, 6]

リストを平坦化したい

 これはリストを要素とするリストを平坦化するコードですが、内包表記を見ても意味が分かりません。これは以下のコードと同じです。

listoflist = [[1, 2], [3, 4], [5, 6]]

flatten = []

for outer in listoflist:
    for item in outer:
        flatten.append(item)

print(flatten)  # [1, 2, 3, 4, 5, 6]

最初のコードをfor文を使って書き下したもの

 内包表記に慣れていればまあ分かります。でも正直Pythonicではないですよね。PEP 798は、これを以下のように書けるようにしましょうという提案です(簡単にいってしまえば)。

listoflist = [[1, 2], [3, 4], [5, 6]]

flatten = [*outer for outer in listoflist]
print(flatten)

これなら分かりやすい(Pythonic!)

 残念ながらPython 3.15.0a5ではまだこのコードは動きませんが、これならとてもコードが分かりやすくなります。なるほどぜひともPython 3.15で使えるようにしてほしいものですね。

 状態が「Draft」のPEPの中で筆者がちょっと「いいな」と思ったのはPEP 802です。これは空の集合を表すデフォルトの構文を「{/}」に、空の集合の文字列表現も「{/}」にしようというものです。これまで空の集合はset関数で作るしかありませんでした(「{}」は空の辞書を作成します)。リスト、タプル、辞書が空のリテラル表記([]、()、{})を持つのだから、集合についてもそうしたものがあるべきでしょう。今回のPEPでは、波かっことスラッシュを使って、いかにも空集合であるかのように見えるというのがいいですね。

 というわけで、今回はPython 3.15のリリーススケジュールと、それにどんな機能が追加されるかをPEPと共に紹介してみました。どんな機能がPython 3.15に搭載されるかが気になる方は、αリリースのたびにドキュメントを参照したり、PEP 0を眺めてみたりすると(特に「Draft」「Accepted」「Final」がどうなるかを確認すると)楽しいかもしれません。

「Deep Insider AI Practice」のインデックス

Deep Insider AI Practice

Copyright© Digital Advantage Corp. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2026
人に頼れない今こそ、本音で語るセキュリティ「モダナイズ」
4AI by @IT - AIを作り、動かし、守り、生かす
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。