入門Python3 第二版(読んでない段階での予告編)
Pythonを初めて学ぼうとしたときに、いくつか入門書があったのだけど、「漢たるものオライリーだ」という謎の理由で購入した「入門Python3」。
なんだかんだで、今でも基本的なことをど忘れしたときには開く。 その「入門Python3」の第二版。その名も「入門Python3 第2版」が発売された。
第一版も600ページとなかなかのボリュームだったのだけど、第二版はさらに充実して800ページ。ちょっとした鈍器になるボリューム。 第一版にお世話になった(ている)身としては、第二版も買おうかと思ったりするのだけど、厚い。悩ましい。
第一版がPython3.3(3.4)時代なので、第二版で対応したPython3.9では大きく進化がある。改めて読み直しても良いのかもしれない。が、厚い。
Python3.3 → 3.9で増えた内容
Wikipediaより抜粋。
自分の感覚だと、非同期系、f文字列、型ヒント、データクラス、あたりがパッと気にかかるポイント。第二版でこれらが充実していると嬉しい。手にとって見てみたいなぁ。やっぱり買うかなぁ。
3.4
- オブジェクト指向ファイルシステムパスを提供する「pathlib」モジュールの提供
- 列挙型を扱うためのenumモジュールの標準化
- 統計関数を提供するstatisticsモジュールの導入
- Pythonが割り当てたメモリブロックを追跡するためのデバッグツールのtracemallocモジュールの導入
- 非同期I/Oを扱うためのフレームワークとなるasyncioモジュールの導入
- Pythonの組み込み関数に関する分析情報を得るため機構の実装
3.5
- zipアプリケーションサポートの改良
- byte/bytearrayオブジェクトのための「%」フォーマット対応の追加
- 行列乗算演算子@の導入
- 高速ディレクトリトラバーサル機能os.scandir()の導入
- 割込がかかったシステムコールのオートリトライ機能追加
- 近似値であるかどうかをテストする機能の導入
- .pyoファイルの削除
- 拡張モジュールをロードするための新しい仕組みの導入
3.6
- 文字列中に式を埋め込める「Formatted string literals」の導入
- 変数に対して型に関する情報(型ヒント)を与える「Syntax for variable annotations」の導入
- 「async」および「await」文法 (async/await)でコルーチンを利用可能にする「Asynchronous generators」の導入
- 標準ライブラリにsecretsモジュールを追加
- DTraceおよびSystemTapプローブのサポートを追加
3.7
- 使用時点では宣言されていない型を使った型アノーテーション表記が可能となる
- レガシーな C ロケールの抑圧、強制 UTF-8 実行モード
- breakpoint() 関数の追加
- dict の挿入順の保存
- ナノ秒 (10-9 s) 単位の分解能を持つ新しい時間関数の追加
- コンテキスト変数
- データクラス
3.8
- 代入式 :=
- 位置のみのパラメータ
- f文字列で f'{expr=}' の形式のサポート
- pickle プロトコル5
- dict での reversed のサポート
※3.9の追加分がまだまとめられていなかった・・・
寺田さんが以前にPodcastで3.9の変更点について語っていたので、参考にリンクを貼っておきます。