Python 3.6¶
Python 3.6 beta 1 は 2016 年 9 月 12 日にリリースされました。新機能の概要は以下を参照してください。
新しい構文機能 |
ステータス |
|
リテラル文字列フォーマット |
完了 |
|
数値リテラル中のアンダースコア |
完了 |
|
非同期ジェネレータ |
||
変数アノテーションの構文(暫定) |
完了 |
|
非同期内包表記 |
||
新しい組み込み機能 |
||
関数における kwargs の順序の保持 |
||
クラス生成のより簡単なカスタマイズ |
部分的 [1] |
|
クラス属性の定義順序の保持 |
||
標準ライブラリの変更 |
||
ローカル時刻の曖昧性解消 |
||
標準ライブラリへの secrets モジュールの追加 |
||
ファイルシステムパスプロトコルの追加 |
||
CPython の内部実装 |
||
dict へのプライベートバージョンの追加 |
対応しない |
|
CPython へのフレーム評価 API の追加 |
||
Linux/Windows の変更 |
||
Linux(システム起動中)で |
||
Windows コンソールのエンコーディングを UTF-8 に変更 |
||
Windows ファイルシステムのエンコーディングを UTF-8 に変更 |
||
その他の言語の変更:
global または nonlocal 文は、同じスコープ内で対象の名前が最初に使用される前に、構文上で出現していなければならなくなりました。以前はこれは SyntaxWarning でした。 |
|
特殊メソッドを None に設定することで、対応する操作が利用できないことを示せるようになりました。たとえば、クラスが __iter__() を None に設定すると、そのクラスは反復可能ではなくなります。 |
|
繰り返されるトレースバック行が長く連続する場合、[Previous line repeated {count} more times] のように省略されるようになりました。 |
|
モジュールが見つからない場合、import は新しい例外 ModuleNotFoundError を送出するようになりました。現在 ImportError を(try-except で)チェックしているコードは引き続き動作します。 |
|
引数なしの super() に依存するクラスメソッドが、クラス生成中にメタクラスのメソッドから呼び出された場合に正しく動作するようになりました。 |
組み込みモジュールの変更:
array.array の使い切られたイテレータは、反復対象の配列が拡張された場合でも、使い切られた状態を保つようになりました。 |
|
b2a_base64() 関数は、戻り値に改行文字を付加するかどうかを制御するためのオプションの newline キーワード引数を受け付けるようになりました。 |
完了 |
新しい cmath.tau (τ) 定数が追加されました。 |
|
新しい定数として、math.inf と math.nan に対応する cmath.inf と cmath.nan が、また複素数の repr で使用される形式に対応する cmath.infj と cmath.nanj が追加されました。 |
|
サイズを持つ反復可能なコンテナクラスを表す新しい抽象基底クラス Collection が追加されました。 |
|
新しい Reversible 抽象基底クラスは、__reversed__() メソッドも提供する反復可能なクラスを表します。 |
|
新しい AsyncGenerator 抽象基底クラスは、非同期ジェネレータを表します。 |
|
namedtuple() 関数は、オプションのキーワード引数 module を受け付けるようになりました。指定された場合、返される名前付きタプルクラスの __module__ 属性に使用されます。 |
|
namedtuple() の verbose および rename 引数はキーワード専用になりました。 |
|
再帰的な collections.deque インスタンスを pickle 化できるようになりました。 |
|
BLAKE2 ハッシュ関数がモジュールに追加されました。blake2b() と blake2s() は常に利用可能で、BLAKE2 のすべての機能セットをサポートしています。 |
|
SHA-3 ハッシュ関数 sha3_224()、sha3_256()、sha3_384()、sha3_512()、および SHAKE ハッシュ関数 shake_128() と shake_256() が追加されました。 |
|
パスワードベースの鍵導出関数 scrypt() が、OpenSSL 1.1.0 以降で利用可能になりました。 |
|
json.load() と json.loads() がバイナリ入力をサポートするようになりました。エンコードされた JSON は UTF-8、UTF-16、または UTF-32 のいずれかで表現する必要があります。 |
|
新しい math.tau (τ) 定数が追加されました。 |
完了 |
新しい close() メソッドにより、scandir() イテレータを明示的にクローズできるようになりました。scandir() イテレータはコンテキストマネージャプロトコルをサポートするようになりました。 |
|
Linux では、セキュリティを高めるため、os.urandom() はシステムの urandom エントロピープールが初期化されるまでブロックするようになりました。 |
|
Linux の getrandom() システムコール(ランダムバイトの取得)が、新しい os.getrandom() 関数として公開されました。 |
|
正規表現における修飾子スパンのサポートが追加されました。例: '(?i:p)ython' は 'python' と 'Python' にマッチしますが 'PYTHON' にはマッチしません。'(?i)g(?-i:v)r' は 'GvR' と 'gvr' にマッチしますが 'GVR' にはマッチしません。 |
|
マッチオブジェクトのグループに __getitem__ でアクセスできるようになり、これは group() と等価です。したがって mo['name'] は mo.group('name') と等価になりました。 |
|
マッチオブジェクトは、グループインデックスとしてインデックスのようなオブジェクトをサポートするようになりました。 |
|
ioctl() 関数が SIO_LOOPBACK_FAST_PATH 制御コードをサポートするようになりました。 |
|
getsockopt() の定数 SO_DOMAIN、SO_PROTOCOL、SO_PEERSEC、および SO_PASSSEC がサポートされるようになりました。 |
|
setsockopt() が setsockopt(level, optname, None, optlen: int) の形式をサポートするようになりました。 |
|
socket モジュールが、Linux カーネルの暗号 API とインターフェースするためのアドレスファミリ AF_ALG をサポートするようになりました。ALG_、SOL_ALG、および sendmsg_afalg() が追加されました。 |
|
新しい Linux 定数 TCP_USER_TIMEOUT と TCP_CONGESTION が追加されました。 |
|
ssl は OpenSSL 1.1.0 をサポートします。推奨される最小バージョンは 1.0.2 です。 |
|
3DES がデフォルトの暗号スイートから削除され、ChaCha20 Poly1305 暗号スイートが追加されました。 |
|
SSLContext は、オプションと暗号についてより優れたデフォルト設定を備えています。 |
|
新しい SSLSession クラスを使用して、あるクライアント側接続から別の接続へ SSL セッションをコピーできるようになりました。TLS セッションの再開により、初回ハンドシェイクを高速化し、レイテンシを削減し、パフォーマンスを向上させることができます。 |
|
新しい get_ciphers() メソッドを使用して、暗号の優先度順に有効な暗号のリストを取得できます。 |
|
すべての定数とフラグが IntEnum と IntFlags に変換されました。 |
|
SSLContext 用のサーバー側およびクライアント側固有の TLS プロトコルが追加されました。 |
|
TLS 1.3 のハンドシェイク後認証を有効にする SSLContext.post_handshake_auth と、それを開始する ssl.SSLSocket.verify_client_post_handshake() が追加されました。 |
|
'e' フォーマット指定子を介して IEEE 754 半精度浮動小数点数をサポートするようになりました。 |
|
新しい getfilesystemencodeerrors() 関数は、Unicode ファイル名とバイト列ファイル名の間の変換に使用されるエラーモードの名前を返します。 |
|
compress() と decompress() 関数がキーワード引数を受け付けるようになりました。 |
|
注記