Python 3.11 が登場し、パフォーマンスが向上し、キャッシュが再設計されました。

Python

Python は、コードの読みやすさを重視する哲学を持つ高レベルのインタープリター型プログラミング言語です。

1年間の開発期間を経て、Pythonプログラミング言語の最新バージョン3.11がリリースされました。この新バージョンは1年半サポートされ、その後さらに3年半にわたり、脆弱性に対処するためのパッチがリリースされる予定です。

同時に、Python 3.12 ブランチのアルファテストが開始されました(新しい開発スケジュールによると、新しいブランチでの作業は前のブランチのリリースの 5 か月前に開始され、次のバージョンのリリース時にアルファテスト段階に達します)。

Python 3.12 ブランチは XNUMX か月間アルファ リリースとなり、その間に新機能が追加され、バグが修正されます。 その後、XNUMX か月間はベータ テストが行​​われ、その間は新機能の追加が禁止され、バグ修正に細心の注意が払われます。 ローンチ前の最後の XNUMX か月間、ブランチはローンチ候補段階になり、その時点で最終的な安定化が行われます。

Python 3.11 の主な新機能

この新バージョンには、パフォーマンス最適化のための重要な作業が含まれています。新しいブランチには、関数呼び出しの高速化とインライン展開、一般的な操作における高速インタープリタの使用、およびCinderとHotPyプロジェクトによって開発された最適化に関連する変更が組み込まれています。ワークロードに応じて、コード実行速度は10%から60%向上します。平均すると、pyperformanceテストスイートでのパフォーマンスは25%向上しました。

バイトコードキャッシュ機構が再設計され、インタプリタの起動時間が10~15%短縮されました。バイトコードを含むオブジェクトはインタプリタによって静的に割り当てられるようになり、キャッシュから取得したバイトコードのデコードや、バイトコードを含むオブジェクトをメモリに動的に配置するための変換といった手順が不要になりました。

例外グループのサポートが追加され、プログラムが複数の異なる例外を同時に生成および処理できるようになりました。複数の例外をグループ化および結合するための新しい例外タイプ、ExceptionGroupとBaseExceptionGroupが提案され、グループ内の例外を区切るための式「except*」が追加されました。

LiteralString 型という特別な型が追加されました。この型には、LiteralString 型と互換性のあるリテラル文字列(つまり、単純な文字列と LiteralString 型の文字列のみ。str 型の任意の文字列や結合文字列は含まない)のみを含めることができます。LiteralString 型を使用することで、関数への文字列引数の受け渡しを制限し、SQL クエリやシェルコマンド用の文字列を生成する際など、脆弱性が発生する可能性のある文字列の一部が任意に置換されるのを防ぐことができます。

さらに、型付き辞書(TypedDict)の個々の要素に「必須」と「不要」のマークを付けて、必須フィールドとオプションフィールドを判別する機能も提供されています(デフォルトでは、total パラメータが False に設定されていない場合、宣言されたすべてのフィールドが必須となります)。

クラス、メソッド、関数デコレータ @dataclass_transform が追加されました。指定されている場合、静的型チェッカーは、オブジェクトがデコレータ @dataclasses.dataclass を使用しているかのように扱います。

この新しいバージョンで際立っている他の変更の中で:

  • 正規表現でアトミック グループ ((?>…)) と嫉妬 (所有格) 量指定子 (*+、++、?+、{m,n}+) を使用する機能が追加されました。
  • TypeVarTuple 型が追加されました。これにより、XNUMX つの型ではなく、任意の数の型をカバーする TypeVar とは異なり、変数ジェネリックを使用できます。
  • 標準ライブラリには、TOML 形式を解析する関数を備えた tomllib モジュールが含まれています。
  • add_note() メソッドが BaseException クラスに追加されました。これにより、テキスト ノートを例外に添付できます。たとえば、例外がスローされた時点では利用できなかったコンテキスト情報を追加できます。
  • 現在のプライベート クラスを表すために、特殊な型の Self が追加されました。 Self を使用すると、TypeVar を使用するよりも簡単な方法で、クラスのインスタンスを返すメソッドに注釈を付けることができます。
  • 「-P」コマンド ライン オプションと PYTHONSAFEPATH 環境変数を追加して、sys.path への潜在的に安全でないファイル パスの自動接続を無効にしました。
  • Windows プラットフォームの py.exe ユーティリティは、「-V:」構文をサポートするように大幅に強化されました。 / " に加えて "- . ».
  • 多くの C API マクロが通常のインライン関数または静的インライン関数に変換されました
  • uu、cgi、pipes、crypt、aifc、chunk、msilib、telnetlib、audioop、nis、sndhdr、imghdr、nntplib、spwd、xdrlib、cgitb、mailcap、ossaudiodev、および sunau モジュールは廃止され、Python から削除されます。 3.13 リリース。
  • PyUnicode_Encode* 関数を削除しました。
  • TaskGroup クラスが asyncio モジュールに追加され、タスク グループの完了を待機する非同期コンテキスト マネージャーが実装されました。
  • グループへのタスクの追加は create_task() メソッドを使用して行われます。

最後に、これについてさらに詳しく知りたい場合は、以下のリンクから詳細をご覧いただけます。


Googleで優先ソースとして追加する