Python 3.14は、真の並列処理、安全なテンプレート、よりスムーズなエクスペリエンスを実現します。

  • 遅延注釈と t 文字列は、パフォーマンスと安全なテンプレートを提供します。
  • サブインタープリタ、フリースレッドの改善、ロックの削減により並列性が向上します。
  • Zstandard、新しい asyncio ツール、より明確なバグ修正により、日々の作業が楽になります。
  • 安全なデバッグと末尾呼び出しを備えた新しいインタープリターにより、可視性と速度が向上します。

Pythonの3.14

Pythonは、データサイエンス、バックエンド、自動化、教育における重要なツールとして成長を続け、その地位を強化しており、バージョン3.14 パフォーマンス、同時実行性、日常的なエクスペリエンスに影響を与える変更が満載です。このガイドでは、例とコンテキストを交えて、あらゆるところで目にする新しい頭字語とモジュールの背後にあるもの、そしてその理由を説明します。 これらの改善は、初心者と本番環境にデプロイするチームの両方に影響を与えます。.

各リリースにまつわる通常の雑音を超えて、ここでは公式に発表され文書化された最も重要な事項と、すでに 3.14 を使用している開発者によって共有された実用的な詳細を集めました。 遅延注釈から標準ライブラリのサブインタープリターまで、t-string、Zstandard、新しい安全なデバッガー、REPL の改善などが含まれます。ここでは重要な点が明確に説明されています。

概要: Python 3.14 で実際に何が変わるのか

Python 3.14は10月7日にリリースされ、実装、API、標準ライブラリの変更がいくつかの重要な領域に及んでいます。公式ドキュメントでは、Misc/NEWS.dから構築された従来のWhat's NewファイルとChangelogファイルが維持されており、追加された内容を行ごとに詳細に確認できるマップとして機能します。 全体像をお知りになりたい場合: より便利な並列処理、新しいテンプレートおよびデバッグ機能、最新の圧縮パッケージ、そしてより役立つエラー メッセージが多数あります。.

現実の世界では、これは、スレッドの競合が少なくなり、GIL をロックせずに並列化するためのオプションが増え、アノテーションの予期せぬ変更が少なくなり、妨げになるよりも役立つ対話型シェルを備えたプログラムにつながります。 さらに、コミュニティ自体が、REPL と PDB の色、argparse と unittest の改善、日常のタスクを簡素化する stdlib ユーティリティなどの実用的な進歩を強調しています。.

遅延アノテーション: PEP 649 + PEP 749

最も重要な変更点の一つは、関数、クラス、モジュール内のアノテーションの遅延評価です。アノテーションは定義時に評価されるのではなく、特別な関数に保存され、必要に応じて解決されるようになりました。 これにより、定義時間のコストが削減され、前方参照によるエラーが回避され、大きな型や高価なインポートでの作業がはるかに容易になります。.

検査するには、モジュールが表示されます annotationlib、3 つの主要な形式があります。 VALUE (以前と同様に実行時の値に評価されます)、 FORWARDREF (名前がまだ定義されていないものをマーク)および STRING (注釈をテキストとして返します)。 移行については、公式ドキュメントの移植ブロックに、コードをいつ変更するかについてのガイダンスが提供されていますが、ほとんどの場合、何も変更する必要はありません。.

重要な詳細:使用している場合 from __future__ import annotations、その特定のセマンティクスは依然として適用されるため、入力ツールを確認してください。 全体的な目標は、必要に応じてイントロスペクションの可能性を維持しながら、パフォーマンスと使いやすさを向上させることです。.

標準ライブラリのサブインタプリタ: PEP 734

CPythonはC-API経由で何十年も複数のインタープリターを許可してきましたが、3.14では誰でも利用できるようになります。 concurrent.interpreters. これにより、常にプロセスをプルする必要がなくなり、より人間に近い並行性と真のマルチコア並列性を実現できるようになります。.

何が得られますか? CSP やアクター モデルのようなモデル、明示的に共有できる機能によるデフォルトの分離、プロセスよりも低いリソース消費などです。 CPUを集中的に使用する場合は、3.12のインタープリタは並列実行できるほど分離されているため、以前はGILの影響を受けていたシナリオが解放されます。.

制限事項があります: インタプリタの起動はまだ最適化されていない、メモリ使用量は改善できる、共有オプションがほとんどない memoryview、および PyPI 拡張機能のほとんどは完全にはサポートされていません。 良いニュースとしては、標準にはすでにサポートが含まれていることです。 InterpreterPoolExecutor en concurrent.futuresコミュニティはCython、pybind11、nanobind、PyO3でチップを動かしている.

T文字列テンプレート: PEP 750

T 文字列が登場しました。これは f 文字列構文を持つテンプレート メカニズムですが、オブジェクトを返します。 Template 静的部分と補間部分が別々に存在し、 str 決勝。 これにより、コンテンツを結合する前に処理し、ユーザー入力をサニタイズし、軽量 DSL をより安全に組み立てることができます。.

接頭辞を付けて書きます t の代わりに f、反復処理を行います Template そして、それぞれのフラグメントまたは補間を好みに合わせて処理します。 HTML エスケープから DOM のような構造の構築や属性辞書を受け入れるテンプレートまで、明瞭さを犠牲にすることなく柔軟性が得られます。.

Python 3.14では外部デバッグ用のセキュアインターフェースが導入されました: PEP 768

3.14 では、デバッガーとプロファイラーが実行中の Python プロセスに安全にフックできるようにする、ゼロ オーバーヘッドのデバッグ インターフェイスが導入されています。 安全でない回避策はもうありません。通常のインタープリター パスから逸脱せずにデバッグ コードを挿入するための安全な実行ポイントが用意されています。.

これを容易にするために、 sys.remote_exec()は、ターゲット プロセスの次の安全ポイントで実行されるコードを送信します。 PEP では、高可用性システムで重要となる、アクセスを制限して不正使用を防止するセキュリティ制御を含む、基礎となるプロトコルについて説明します。.

C言語の末尾呼び出しを備えた新しいタイプのインタープリタ

もう一つの技術的な目新しさは、オペコードを実装する小さなC関数間の末尾呼び出しを連鎖する代替インタープリタである。 switch. サポートされているプラ​​ットフォームとコンパイラ (x86-64 および AArch64 上の Clang 19+) では、初期ベンチマークで 3% ~ 5% の幾何学的改善が示されています。.

これはオプトインであり、利益をもたらす実証済みの設定であるため、PGO を有効にすることをお勧めします。 コンパイルオプションで有効になります --with-tail-call-interpGCCは将来的にこれをサポートする予定である。.

フリースレッドモード: PEP 703と実用的なパフォーマンス

3.13 で導入された GIL フリー モードは 3.14 で飛躍的に進歩しました。PEP 703 で提案された C-API の変更が完了し、回避策が恒久的な解決策に置き換えられました。 このモードでは、特殊な適応型インタープリタ(PEP 659)がアクティブになり、他の最適化と合わせてペナルティが軽減されます。.

現在、シングルスレッドでの損失は、プラットフォームとコンパイラに応じて約 5 ~ 10% であり、実際の並列処理による利点と比較すると妥当な価格です。 Windowsでは、フリースレッドビルドの拡張機能をコンパイルする際に、以下を定義する必要があります。 Py_GIL_DISABLED実行時に設定を確認するには、 sysconfig.get_config_var().

さらに、旗が現れる -X context_aware_warnings コンテキストによって警告フィルターを制御します。GIL のないビルドではデフォルトで有効になり、GIL を維持するビルドでは無効になります。 また到着します thread_inherit_context 作成されたスレッドは Context() 呼び出し元の、フィルターに影響を与える warnings, decimal コンテキスト変数を使用したその他のAPI.

Python 3.14 ではエラーメッセージがさらに便利になりました

インタープリターは、Python キーワードに類似した用語を検出するとキーワードを提案するようになりました。これにより、タイプミスをすぐに見つけられるようになります。 「print」の代わりに「pritn」と書くなどのケースは、直接的なヒントによってすでに修正されていますが、すべてのバリエーションがカバーされるわけではありません。.

特定のメッセージがあります elifelse、条件式では、欠落している expression 文を後ろに入れた場合 else o pass/break/continue 前に if. 文字列が間違って閉じられていることや文字列内のプレフィックスが互換性がないことが原因で発生するエラーも改善されました。.

さらなる改善:使用時のメッセージがより明確になりました as パターンマッチングを除く、インポート時に互換性のないターゲットがある。ハッシュ不可能なオブジェクトをインポートしようとした場合の詳細 dict o set; 同期コンテキストマネージャに入ると通知が表示されます async with またはその逆。 すべてが加算され、通訳者は何が、どこで、なぜなのかを伝えることができる。.

標準ライブラリにおける最新の圧縮: PEP 784 と Zstandard

パッケージが誕生 compression、再輸出 lzma, bz2, gzip y zlib として compression.lzma, compression.bz2, compression.gzip y compression.zlib. これらの新しい名前は 3.14 以降の推奨ルートですが、クラシック ルートは現時点では廃止されていません。.

星は compression.zstdMeta の zstd ライブラリへのバインディングによる Zstandard のネイティブ サポート。 高速で効率的なAPIとZstandardファイルの直接サポートが得られます。 tarfile, zipfile y shutil外部パッケージをインストールせずに.

コマンドラインからのAsyncioイントロスペクション

非同期タスクで実行中のPythonプロセスを検査できるようになりました。 python -m asyncio ps PID y python -m asyncio pstree PID. ps サブコマンドは、タスク、名前、スタックのフラットなテーブルを表示します。pstree は、非同期呼び出しツリーを生成します。.

これは、長いプログラムやブロックされたプログラムで特に役立ち、ボトルネックがどこにあるか、どのタスクが待機しているか、コルーチンが互いにどのように関連しているかを検出します。 待機グラフにサイクルがある場合、ツールはそれを検出し、問題のあるルートを一覧表示します。.

Python 3.14 における同時警告制御

warnings.catch_warnings フラグを有効にすると、アラートフィルターにコンテキスト変数を使用できます。 context_aware_warnings 経由 -X または環境変数。 このようにすると、スレッドまたは非同期タスクを混在させ、それらが互いに重複していない場合に、警告の処理が予測可能になります。.

Python 3.14 ユーザーエクスペリエンス: コンソール、Argparse、UnitTest など

3.14をメジャーリリースとして数ヶ月間使用してきた人なら誰でも、日常的な経験の中で、REPLとPDBの構文の強調表示、例えば KodiでのPython 3のサポート、argparse のヘルプが改善され、unittest のメッセージがよりわかりやすくなりました。 これらの詳細により、摩擦が軽減され、何が問題なのかを理解するためにエディターに飛び込む必要がなくなります。.

対話型コンソールは、よくあるタイプミスの修正を提案します。例えば、古典的な「pritn」は、次のように表示されます。 print. さらに、よりスマートなインポート自動補完機能も備わっており、プロンプトを離れずにモジュールを見つけるのに役立ちます。.

非常に実用的なユーティリティが標準ライブラリに含まれています。 pathlib 引っ張らないようにする shutil 基本的なものとしては、 date.strptime 経由せずに直接 datetime.strptime().date()、そしてランダム性と時間的な順序可能性を組み合わせた UUID v7 です。 小さなショートカットが内部スクリプトやツールに大きな影響を与える.

argparseは、入力ミスがあった場合に提案を追加します。 選択、CLI デバッグ時間を短縮します。そして、はい、t 文字列はすでに、安全なテンプレートのためにそれを活用するライブラリの小さなエコシステムに供給し始めています。 複雑な文字列やユーザー入力を扱う場合は、その違いに気付くでしょう。.

並列処理、ブロッキングの低減、プロセスに関する予期せぬ事態の解消

いくつかの変更は、スレッド間のブロッキングを減らすことを目的としています。stdlib のサブインタープリタと GIL フリー モードの進歩により、デッドロックに陥ることなく負荷を分散するためのオプションが増えています。 並列タスクを実行するサービスやライブラリの場合、これは目に見えるスループットの向上につながります。.

また、複数のプロセスを作成する際のデフォルトの動作も変更されます。 フォークサーバー に対して フォーク これにより、微妙なクラッシュが減り、マルチプロセスのシナリオで障害がより理解しやすくなります。 実用的には、再現困難なゾンビの減少とより正確な診断が可能になる。.

Python 3.14 のリリーススケジュールと成熟度

Python チームは、3.14 サイクル中に、新機能のテスト、バグの修正、リリース プロセスの微調整を目的とした合計 7 回のプレベータ リリースのうち、Alpha 5 を含むいくつかのアルファ リリースを発表しました。 ベータ フェーズは 2025 年 5 月 6 日に開始され、新しい機能は追加されませんが、7 月 22 日のリリース候補まで調整される可能性があります。.

プレ安定リリース期間中は、本番環境でプレリリースを使用することは推奨されません。公式ドキュメントには、ライブカレンダー(PEP 745)、GitHubの課題追跡システム、そしてPython Software Foundationを通じた貢献のためのガイドラインが掲載されています。 バグを発見した場合、Sphinx が生成したドキュメントとレポート リンクを使用して、簡単にバグを開いて追跡できます。.

数字のウインク:3.14と蛇年

バージョン番号と円周率の歴史的な近似値 (3.14) の一致は、ちょうど蛇の年に、コミュニティ内で複数のジョークを生み出しました。 Liu Xin から Zu Chongzhi に至るまで、円周率の近似値を求めることへのこだわりは、反復子の最適化とほぼ同じくらい古いものです。.

このバージョンでは、逸話だけでなく、エンジニアリング サービスを提供する何百人ものボランティアと企業の共同の努力にも敬意を表しています。 PSF は非営利団体として、参加、寄付、およびドキュメントと例を網羅する歴史とライセンスの確認を呼びかけています。.

ドキュメントは最近まで更新され続けており、リリース ノートや Sphinx を使用した自動再構築が行われています。 予期しない動作が発生した場合は、変更ログと新機能を確認し、変更を説明する最近のニュアンスがあるかどうかを確認してください。.

全体として、Python 3.14 は、摩擦の少ない真の並列処理、安全で表現力豊かなテンプレート、シームレスなデバッグ、エラーをより適切に説明するツールなど、将来に向けた基盤を築きながら、日常的なエクスペリエンスを改良します。 3.13 から移行する場合は、段階的な変更と新機能に気付くでしょう。数バージョン更新していない場合は、複合的な改善により移行する価値が高まります。.

コディ22桟橋
関連記事
Kodi 22 Piers:新機能、ダウンロード、アルファ版に期待すること

優先ソースとして追加