2020年12月8日火曜日

Python3.9 リリース

2ヶ月ほど遅れてリリースノートを読んでいる...
今後は1年ごとのメジャーリリースとなるらしい。3.10 は来年の10月頃

■ PEP 584, union operators added to dict
今まではupdate メソッドを利用していたのがset のように書けるようになった
>>> {1:'A'} | {2:'B'}
{1: 'A', 2: 'B'}
>>> {1:'あ', 2: 'い'} | {2:'う'}
{1: 'あ', 2: 'う'}
>>> d1 = {1: 'A'}
>>> d1 |= {2: 'B'}
>>> d1
{1: 'A', 2: 'B'}

■ PEP 616, string methods to remove prefixes and suffixes
removeprefix とremovesuffixメソッドの追加
スペース以外に対応したlstrip() rstrip()の拡張版
新メソッドでなく、lstrip, rstrip に引数を追加する形でも良かった気がするが。
>>> "【大安売り!】".removeprefix("【").removesuffix("】")
'大安売り!'

■ ZoneInfoモジュール
今までは標準ライブラリだけではタイムゾーン名が利用できなかった。
(あれ、そうだった?とにかく日時処理はめんどくさいし、すぐに忘れるので大変!)

Python 3.9の新機能
What’s New In Python 3.9