Python バージョン3.10.2の新機能と変更点を解説
thumb_python310101_01
Python バージョン3.10.2の新機能と変更点を解説
アンドエンジニア編集部
2022.01.26
この記事でわかること
Python 3.10.2は、Python 3.10の2回目のメンテナンスリリースです
Pythonは1~2カ月に1度バージョンアップがされていますが、3.10.2は前倒しリリースとなります
Pythonのメジャーリリースは3.10であり、今回大幅な機能拡張はなく不具合修正に限定されます

Python 3.10.2

img_python3102_01

2021年12月6日3.10の最初のメンテナンスリリースが公開されました。そのわずか1か月後の2022年1月14日、3.10.2が2回目のメンテナンスリリースとして登場です。Pythonは1〜2カ月に1度のペースでバージョンアップがされています。ここでは、3.10からのリリースについて順に説明していきます。 【参考】:Python 3.10.2

そもそもPythonとは?

img_python3102_02

Pythonとは、インタープリタ型のオブジェクト指向プログラミング言語です。言語仕様がシンプルであるため、メンテナンス性に優れています。汎用用途の他、それぞれの専門分野にライブラリーが公開されているため、多様なアプリケーション開発で利用されています。 【参考】python

Pythonを利用するには編集用テキストエディタとPCがあればすぐ始められ、Windows・Linux・MacOS等のOSで対応しています。ターゲットとなる多様なシステムにPythonのインストールモジュールをダウンロードし、インストールが可能です。 【参考】python download

Pythonとは?人気のPythonを学ぶ際に知っておきたいこと

Pythonの特徴

Pythonの特徴は、プログラム記述がシンプルなことが挙げられます。記述しやすく、かつ判読しやすいのでメンテナンス性に優れています。さらに、オブジェクト指向プログラミングであるため、高機能なプログラムが簡単に記述できるメリットがあります。

Pythonはインタプリタのためデバッグが簡単であり、コード開発とライブラリー共有が順次行われています。分析アルゴリズムが共通化しやすい人工知能(AI)では、利便性向上のために機械学習やディープラーニング(深層学習)のライブラリーが数多く提供されており、AI分野ではPythonが標準的に用いられています

PythonはAIに必須!AIエンジニアを目指すならPythonを学ぼう
Pythonの用途を知った上でPythonエンジニアを目指そう

バージョンアップで追加されたPythonの機能

img_python3102_03

Pythonはセキュリティ対策やバグ修正を含めて、1~2カ月に1度のペースでバージョンアップ版が公開されています。3.10.0の公開日を順に整理します。

・Python 3.10.0 2021年10月4日公開 ・Python 3.10.1 2021年12月6日公開 ・Python 3.10.2 2022年1月14日公開

この期間は3.9のリリースも3.9.8・3.9.9・3.9.10とバージョンアップを重ね公開されているため、精力的にバージョンアップがされていることがわかります。

Python 3.10の新機能

Python 3.10の新機能は「What’s New In Python 3.10」にまとめられています。 【参考】:What’s New In Python 3.10

以下が主な機能追加です。 ・context managersの丸カッコ対応 context managersでネスト解釈が改良され、複数行にまたがる継続行で丸カッコの解釈が可能となります。従来のimportステートメントと同様の方法で書式が解釈されます。具体例ですが、with構文では行末にバッククォート(”\”)をつけずにカンマで終わる記述が可能です。 with (     Function1() as example1,     Function2() as example2,     Function3() as example3 ):

エラーメッセージの改良:SyntaxError SyntaxErrorとして表示される、文法エラーに関するメッセージの改良がされました。

丸カッコや角カッコが正しくセットで記載されていない場合、該当するカッコを表示するよう改良されました。文字列のリテラルが正しく括られていない場合も、その該当範囲を表示するように変更されています。

同様に「”:”(コロン)の不足や丸カッコがタプルに未記載の場合」、「”,”(カンマ)の誤り、複数のException型に丸カッコがない場合」、「辞書型リテラルに”:”(コロン)がない場合」、「tryブロックでexceptまたはfinallyブロックの記述がない場合」、「”=”と”==”を間違えた場合」、「f-stringで”*”を使った場合」にエラーメッセージが表示されます。

エラーメッセージの改良:IndentationError インデントエラー(IndentationError)が記述コンテントに応じてステートメントを含めた表示がされます。

エラーメッセージの改良:AttributeError 例外処理(exception)が発生した場合、PyErr_Display()が類似の属性名の誤りの可能性について、AttributeError行に提示してくれます。

エラーメッセージの改良:NameError 例外処理(exception)が発生した場合、PyErr_Display()が類似の変数名の誤りの可能性について、NameError行に提示してくれます。

構造型パターンマッチングの追加 matchステートメントと、caseステートメント形式のパターンマッチングが可能です。直接リテラルとのマッチングを図るほか、複数のリテラルをまとめて記述したり、必要に応じてワイルドキャラクター(”_”)を指定したりします。caseステートメントでは変数のバインドも可能で、クラス呼び出しも可能です。具体的には以下のような基本構文となります。 match 表現や式:     case <パターン1>:         <実行コード1>     case <パターン2>:         <実行コード2>     case <パターン3>:         <実行コード3>     case _:         <ワイルドキャラクターの実行コード>

基本構文の<パターン>では、リスト・タプル・辞書等を用いることもできます。

Unionオペレータの追加 “X | Y”で表されるUnionオペレータが追加されました。Typescriptと同様の記述が可能となり、従来の”Union[X, Y]”よりも記述がシンプルでわかりやすくなります。isinstance()やissubclass()でも、Unionオペレータが利用できます。

パラメータ仕様変数(ParamSpec)の追加 typingモジュールにParamSpecが追加され、パラメータ型を転送することができます。またConcatenateでさらに引数を連結し、追加・削除が可能です。

TypeAliasの追加 type alias(型エイリアス)の区別がつきやすいように、TypeAliasとして別名を明示できます。

ユーザー定義のType Guard typingにTypeGuardが追加され、型の絞り込みが正確に行えるようにします。

改良されたモジュール Optimizationとしてモジュールやインタープリタ等に高速化の改良がされています。この他、多くのモジュールが修正・改良されています。詳細は以下のリンクをご確認ください。 【参考】:What’s New In Python 3.10 Improved Modules

Python 3.10.1のバージョンアップ内容

Python 3.10.1のバージョンアップ内容ですが、Core and Builtins・Library・Documentation・Tests・Build・Windows・macOS・IDLE・C APIの各項目において、不具合のFixと関連モジュールのバージョン対応やオプション変更等の調整がされています。本質的な機能は3.10.0と同等と判断できます。 【参考】:What’s New In Python 3.10 Python 3.10.1 final

Python 3.10.2のバージョンアップ内容

Python 3.10.2のバージョンアップ内容ですが、トップページにCython使用時にメモリーリークが発生したため前倒しでバグフィックス版をリリースしたと記載されています。長期使用時に問題発生がするため、重要と位置付けられるバージョンアップです

Core and Builtins・Library・Documentation・Tests・Build・macOS・C APIにおいて、不具合のFixと関連モジュールのバージョン対応やオプション変更等の調整がされていますが、急きょ前倒ししたため変更点は少なめです。今後はリリースを重ねて徐々に安定していくでしょう。 【参考】:What’s New In Python 3.10 Python 3.10.2 final

Pythonのバージョンアップは適宜行いましょう

img_python3102_04

Pythonはバージョンアップが1〜2カ月に1度のペースで進められており、非常に短サイクルです。不具合の修正も早いですが、利用環境の保全が必要となります。3.7以降は定期的にセキュリティ更新がされており、バグフィックスは3.9以降が対象です。

そのため利用環境に応じて、ライブラリとの整合性を保ちながら適宜バージョンアップを行うことをおすすめします

Pythonの2系と3系の違いとは?Pythonの特徴も解説!
気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT