TOPSoftware > Python 3.9の特徴と新機能(前)

Software

Python 3.9の特徴と新機能(前)

2020/11/04

Serdar Yegulalp InfoWorld

パフォーマンスの向上

 Pythonは、リビジョンを重ねるごとに、それまでのバージョンに対するパフォーマンスの向上が加わっている。Python 3.9も、2つの点で改良が取り入れられており、既存のコードのパフォーマンスが修正なしで向上する。

 改良点の1つは、Python 3.8で導入されたvectorcallプロトコルを利用する型が増えたことだ。vectorcallでは、関数呼び出しの際の一時オブジェクト作成に伴うオーバーヘッドが減り、処理が高速化される。3.9では、いくつかの組み込み型(range、tuple、set、frozenset、list、dict)が内部的にvectorcallを使うようになった。

 もう1つの改良点は、CPythonで使用されるパーサーが新しくなり、ソースコードの解析(パース)の効率が上がったことだ。パーサーの変更は、パフォーマンスの問題に対処するためではなく、従来のパーサーの内部的な齟齬に対処するためだったが、その副次的効果として、特に大規模なコードでの解析が高速化した。

文字列型と辞書型の操作がより便利に

 Pythonには、一般的なデータ型の操作を便利にするさまざまな機能がある。Python 3.9では、文字列型と辞書型に新機能が加わった。文字列型では、接頭語や接尾語を取り除くためのメソッドが新たに加わり、そのための定型的なコードを自ら記述する手間が不要になった。辞書型では、和集合演算子を使った操作が可能になった。2つの辞書を統合して新しい辞書を作成したり、一方の辞書を別の辞書の内容で更新したりできる。

デコレータの制限の緩和

 Pythonのデコレータでは、関数の動作をラッパーで変えることができる。これまでのデコレータの記述は、@記号、名前(例:func)またはドット付きの名前(例:func.method)、オプションの単一の呼び出し(例:func.method(arg1, arg2))のみを使用できた。Python 3.9ではこの制限が緩和され、有効な式なら何でも使えるようになった。

 従来は、この制約を回避する方法として、複雑な式の代わりとなる関数やラムダ式を作成する方法などが使われてきたが、今後はそのような手段に頼らずに済む。

翻訳:内山卓則=ニューズフロント

↑ページ先頭へ