Python 3.7

新機能:

機能

ステータス

PEP 538

レガシー C ロケールを UTF-8 ベースのロケールに変換

PEP 539

CPython におけるスレッドローカルストレージのための新しい C-API

PEP 540

UTF-8 モード

PEP 552

決定論的な pyc

PEP 553

組み込みの breakpoint()

PEP 557

データクラス

PEP 560

typing モジュールとジェネリック型のコアサポート

PEP 562

モジュールの __getattr____dir__

部分的

PEP 563

アノテーションの評価の延期

PEP 564

ナノ秒分解能を持つ時刻関数

部分的 [1]

PEP 565

__main__ での DeprecationWarning の表示

PEP 567

コンテキスト変数

その他の言語の変更:

asyncawait が予約キーワードになりました

完了

dict オブジェクトは挿入順序を保持しなければなりません

関数に 255 個を超える引数を渡せるようになりました。また、関数は 255 個を超えるパラメータを持てるようになりました

bytes.fromhex()bytearray.fromhex() は、スペースだけでなくすべての ASCII 空白文字を無視するようになりました

strbytesbytearray に新しい isascii() メソッドのサポートが追加されました。これは文字列やバイト列が ASCII 文字のみを含むかどうかを判定するために使用できます

from ... import ... が失敗した場合、ImportError がモジュール名とモジュールの __file__ パスを表示するようになりました

サブモジュールを名前にバインドする絶対インポートを伴う循環インポートがサポートされるようになりました

object.__format__(x, '') は、format(str(self), '') ではなく str(x) と等価になりました

スタックトレースの動的な生成をより良くサポートするため、types.TracebackType を Python コードからインスタンス化できるようになり、トレースバックの tb_next 属性が書き込み可能になりました

-m スイッチを使用する場合、sys.path[0] は空のディレクトリのまま残されるのではなく、開始ディレクトリのフルパスに即座に展開されるようになりました(これにより、インポートが発生した時点のカレントワーキングディレクトリからのインポートが可能になります)

新しい -X importtime オプション、または PYTHONPROFILEIMPORTTIME 環境変数を使用して、各モジュールのインポートのタイミングを表示できます

組み込みモジュールの変更:

asyncio

多すぎて列挙できません

gc

新機能には gc.freeze()gc.unfreeze()gc-get_freeze_count が含まれます

math

IEEE 754 形式の剰余を実装する math.remainder() が追加されました

re

空文字列での分割のより良いサポートや、コンパイル済み正規表現とマッチオブジェクトのコピーのサポートなど、多数の整理機能

sys

sys.breakpointhook() が追加されました。sys.get(/set)_coroutine_origin_tracking_depth() が追加されました

time

主に PEP564 のナノ秒分解能をサポートするための更新です。上記を参照してください

注記