Python 3.5
以下は、Python 3.5 で確定・受理された PEP を MicroPython への影響ごとにまとめたリストです。
構文の拡張 |
状態 |
|
アンパックの一般化の追加 |
部分的 |
|
新しい行列乗算演算子 |
完了 |
|
|
完了 |
|
ランタイムの拡張と変更 |
||
バイナリ文字列に対する % 書式化 |
完了 |
|
|
完了 |
|
ジェネレータ内での |
完了 |
|
標準ライブラリの変更 |
||
|
||
|
完了 |
|
その他の変更 |
||
Python の zip アプリケーションのサポートの改善 |
||
Python ランチャーを仮想環境に対応させる |
関係なし |
|
型ヒント(勧告のみ) |
完了 [1] |
|
PYO ファイルの廃止 |
関係なし |
|
拡張モジュールの読み込みの再設計 |
||
その他の言語の変更:
namereplace エラーハンドラを追加。 backslashreplace エラーハンドラがデコードと変換でも動作するようになりました。 |
|
プロパティの docstring が書き込み可能になりました。これは特に collections.namedtuple() の docstring に便利です |
|
相対 import を含む循環 import がサポートされるようになりました。 |
新しいモジュール:
組み込みモジュールの変更:
OrderedDict クラスが C で実装され、4〜100 倍高速になりました。 |
|
OrderedDict.items() 、 OrderedDict.keys() 、 OrderedDict.values() のビューが reversed() による反復をサポートするようになりました。 |
|
deque クラスが index() 、 insert() 、 copy() を定義し、+ と * の演算子をサポートするようになりました。 |
|
namedtuple() が生成する docstring を更新できるようになりました。 |
|
UserString クラスが、str の対応するメソッドに合わせて __getnewargs__() 、 __rmod__() 、 casefold() 、 format_map() 、 isprintable() 、 maketrans() の各メソッドを実装するようになりました。 |
|
merge() での要素の比較を、新しい省略可能なキーワード引数 key に関数を渡してカスタマイズできるようになりました。また、新しい省略可能な reverse キーワード引数で要素の比較順を逆にできます |
|
新しい BufferedIOBase.readinto1() メソッド。基底の生ストリームの RawIOBase.read() または RawIOBase.readinto() メソッドの呼び出しを高々1回しか行いません |
|
JSON デコーダは、エラーに関するより良い文脈情報を提供するため、ValueError ではなく JSONDecodeError を発生させるようになりました。 |
|
math モジュールに2つの新しい定数 inf と nan が追加されました。 |
完了 |
新しい関数 isclose() により、おおよその等価性をテストできます。 |
|
新しい gcd() 関数が追加されました。 fractions.gcd() 関数は非推奨になりました。 |
|
DirEntry オブジェクトのイテレータを返す新しい scandir() 関数が追加されました。 |
|
urandom() 関数は、Linux 3.17 以降では getrandom() システムコールを、OpenBSD 5.6 以降では getentropy() を使うようになりました。これにより /dev/urandom を使う必要がなくなり、ファイル記述子の枯渇による失敗を避けられます。 |
|
新しい get_blocking() と set_blocking() 関数で、ファイル記述子のブロッキングモード (O_NONBLOCK) を取得・設定できます。 |
|
渡された各パス名の最長共通部分パスを返す、新しい os.path.commonpath() 関数があります |
|
固定長のグループへの参照と条件付き参照が、後読みアサーションの中で使えるようになりました |
|
正規表現のキャプチャグループの数が 100 に制限されなくなりました。 |
|
sub() と subn() 関数は、マッチしなかったグループを、例外を発生させる代わりに空文字列で置き換えるようになりました。 |
|
re.error 例外に、エラーに関するより良い文脈情報を提供する新しい属性 msg、pattern、pos、lineno、colno が追加されました |
|
タイムアウトのある関数は、システムクロックではなく単調増加クロックを使うようになりました。 |
|
新しい socket.sendfile() メソッドにより、UNIX では高性能な os.sendfile() 関数を使ってソケット経由でファイルを送信できます。単なる socket.send() を使う場合に比べて、アップロードが 2〜3 倍高速になります |
|
socket.sendall() メソッドは、バイトを受信・送信するたびにソケットのタイムアウトをリセットしなくなりました。ソケットのタイムアウトは、すべてのデータを送信するのにかけられる合計時間の上限になりました。 |
|
socket.listen() メソッドの backlog 引数は省略可能になりました。デフォルトでは SOMAXCONN と 128 のうち小さい方が設定されます。 |
完了 |
メモリ BIO のサポート |
|
アプリケーション層プロトコルネゴシエーションのサポート |
|
実際に使われているプロトコルバージョンを問い合わせる、新しい SSLSocket.version() メソッドがあります。 |
|
SSLSocket クラスが SSLSocket.sendfile() メソッドを実装するようになりました。 |
|
SSLSocket.send() メソッドは、非ブロッキングソケットで操作がブロックする場合に ssl.SSLWantReadError または ssl.SSLWantWriteError 例外を発生させるようになりました。以前は 0 を返していました。 |
|
cert_time_to_seconds() 関数は、RFC 5280 に従い、入力された時刻をローカル時刻ではなく UTC として解釈するようになりました。さらに、戻り値は常に int になりました。 |
|
新しい SSLObject.shared_ciphers() と SSLSocket.shared_ciphers() メソッドは、ハンドシェイク中にクライアントが送信した暗号のリストを返します。 |
|
SSLSocket クラスの SSLSocket.do_handshake() 、 SSLSocket.read() 、 SSLSocket.shutdown() 、 SSLSocket.write() の各メソッドは、バイトを受信・送信するたびにソケットのタイムアウトをリセットしなくなりました。 |
|
match_hostname() 関数が IP アドレスのマッチングをサポートするようになりました。 |
|
新しい set_coroutine_wrapper() 関数により、async def 関数によってコルーチンオブジェクトが作られるたびに呼ばれるグローバルなフックを設定できます。対応する get_coroutine_wrapper() で、現在設定されているラッパーを取得できます。 |
|
新しい is_finalizing() 関数で、Python インタプリタが終了処理中かどうかを確認できます。 |
|
monotonic() 関数が常に利用できるようになりました |
|
注記