Python 3.3〜3.5の変更点まとめ(標準編)
この記事は3.2まではPythonを使っていたが、しばらくPythonを離れ、最近戻ってくることになった人*1向けに、 3.3〜3.5で何があったか(何が起こる予定か)をまとめる記事です。
追加された新機能(基本文法・組み込みツール編)
3.3 | ジェネレータの委譲のための新しい yield from 式 |
`u'unicode'`記法の復活 | |
`venv`モジュールの追加 | |
IOError, OSErrorの継承の階層が変更 | |
クラス・関数に`__qualname__`属性を追加 | |
3.4 | なし |
3.5 | [mypy](http://www.mypy-lang.org/)による静的型チェックを標準サポート? |
追加された新機能(ライブラリ編)
3.3 | `ipaddress`モジュールの追加 |
`unittest.mock`モジュールの追加 | |
3.4 | `asyncio`モジュールの追加 |
`enum`モジュールの追加 | |
`pathlib`モジュールの追加 | |
`statictics`モジュールの追加 | |
`functools.singledispatch`モジュールの追加 | |
3.5 | `contextlib.redirect_stderr`の追加 |
`glob.glob`と`glob.iglob`が、任意階層のサブディレクトリにマッチする `**` をサポート | |
`ipaddress.IPv4Network`と`ipaddress.IPv6Network`が`(address, netmask)`も受け取るよう変更 | |
`json`がデコードエラー時に`ValueError`の代わりに`json.JSONDecodeError`を創出するように変更 | |
`re.sub`と`re.subn`が、マッチしなかったグループは空文字列に置換されるように変更 (今までは`sre_constants.error`が送出されていた) | |
`shutil.move`が、`copy_function`引数を取るように変更。 |
開発ツール
3.3でvirtualenv
を標準ライブラリにポートした、venv
が追加されました。virtualenv
をインストールする手間は無くなりましたが、しかしそれ以外のメリットはとくに無いように見えます。
また、個人的にゴリ押ししているツールdirenvを使うとvirtualenvがもっと便利になります。
その他
JITを導入して高速化したPyston と、組み込み向けのMicroPythonが登場しましたが、どちらも開発中です。
*1:つまり私