Pythonが平均1.22倍高速化、メジャー安定版「Python 3.11」の機能向上とはPython 3.10から平均1.22倍高速化

Pythonの最新のメジャー安定版リリース「Python 3.11.0」が公開された。多くの新機能を提供し、多くの最適化が施されている。

» 2022年10月26日 11時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 プログラミング言語「Python」を開発するPython Software Foundationは2022年10月24日(米国時間)、Pythonの最新のメジャー安定版リリース「Python 3.11.0」を公開した。

 Python 3.11.0では多くの新機能が導入され、多くの最適化が施されている。Python Software Foundationは主要な新機能と変更点を、一般的な変更点と、型付けおよび型付け言語の変更点に大別して紹介している。なお、以下の「PEP」で始まる番号は、Pythonの拡張提案を記した文書の通し番号を指す。PEPは、Python Enhancement Proposalの略。また、「gh-」で始まる番号は、GitHubのプルリクエスト番号を指す。

一般的な変更点

PEP 657:トレースバックにエラーの場所の詳細が追加

 Cpythonインタープリタが表示するトレースバックを改善するために、各バイトコード命令から、それらを生成した行の開始カラムと終了カラムのオフセットおよび終了行番号へのマッピングが、トレースバックに含まれるようになった。

PEP 654:例外グループと「except*」

 新しい標準の例外型「ExceptionGroup」が導入され、プログラムが無関係な複数の例外を同時に発生させ、処理できるようになった。ExceptionGroupを処理する新しい構文として「except*」も導入された。

PEP 680:標準ライブラリでのTOML構文解析のサポート

 標準ライブラリに「tomllib」モジュールが追加され、TOML(Tom’s Obvious Minimal Language)を構文解析できるようになった。

gh-90908:「asyncio」へのタスクグループの導入

 「asyncio.TaskGroup」という新しいクラスが追加され、__aexit__が実行されている間、サブタスクがさらにサブタスクを生成し続けることが可能になった。__aexit__は、最後のサブタスクが実行されると、終了する。

gh-34627:正規表現での原子グループ化((?>...))と所有量詞(*+, ++, ?+, {m,n}+)のサポート

高速化

 Faster CPython Projectの取り組みにより、Python 3.11はPython 3.10よりも10〜60%高速化した。標準的なベンチマークスイートで平均1.22倍の速度向上が計測された。

型付けと型付け言語の変更点

PEP 673:自己型

 自身のクラスのインスタンスを返すメソッドにアノテーションを付けるためのシンプルで直感的な方法が導入された。

PEP 646:可変個引数のジェネリクス

 「TypeVarTuple」が導入され、任意の数の型を持つ、つまり可変個引数の型変数のパラメーター化が可能になり、可変個引数のジェネリクスが利用可能になった。

PEP 675:任意のリテラル文字列型

 リテラル文字列型のスーパータイプ「LiteralString」が導入され、関数が「Literal["foo"]」や「Literal["bar"] のような任意のリテラル文字列型を受け入れることができるようになった。

PEP 655:TypedDictにおける個々の項目の記法

 「Required[]」と「NotRequired[]」という2つの記法が導入された。Required[]は、TypedDictの個々の項目を必須としてマークするために使用できる。NotRequired[]は個々の項目を、欠落の可能性があるものとしてマークするために使用できる。

 TypedDictの必須キーと欠落の可能性があるキーの正しい使い方は、静的型チェッカーによってのみ強制される。

PEP 681:データクラスの変換

 ほとんどの型チェッカー、リンター、言語サーバは、データクラスを完全にサポートしている。この機能が一般化され、サードパーティーライブラリが、「特定のデコレーター関数、クラス、メタクラスが、データクラスに似た振る舞いを提供すること」を示せるようになった。

Copyright © ITmedia, Inc. All Rights Reserved.

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

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

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

メールマガジン登録

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