Python 3.5¶
以下は、Python 3.5 で最終化/承認された PEP を、MicroPython への影響ごとに分類した一覧です。
構文の拡張 | ステータス | |
追加のアンパッキングの一般化 | 一部対応 | |
新しい行列乗算演算子 | 完了 | |
| 完了 | |
ランタイムの拡張と変更 | ||
バイナリ文字列の % フォーマット | 完了 | |
| 完了 | |
ジェネレータ内部での | 完了 | |
標準ライブラリの変更 | ||
| ||
| 完了 | |
その他の変更 | ||
Python の zip アプリケーションサポートの改善 | ||
Python Launcher を仮想環境に対応させる | 関連なし | |
型ヒント(参考情報のみ) | 完了 [1] | |
PYO ファイルの廃止 | 関連なし | |
拡張モジュールの読み込みの再設計 | ||
その他の言語の変更点:
namereplace エラーハンドラを追加しました。backslashreplace エラーハンドラはデコードおよび変換でも動作するようになりました。 | |
プロパティのドキュメント文字列が書き込み可能になりました。これは collections.namedtuple() のドキュメント文字列に特に役立ちます | |
相対インポートを含む循環インポートがサポートされるようになりました。 |
新しいモジュール:
組み込みモジュールの変更点:
OrderedDict クラスは C で実装されるようになり、4倍から100倍高速になりました。 | |
OrderedDict.items()、OrderedDict.keys()、OrderedDict.values() のビューが reversed() による反復に対応するようになりました。 | |
deque クラスは index(), insert(), copy() を定義するようになり、+ 演算子および * 演算子をサポートします。 | |
namedtuple() が生成するドキュメント文字列を更新できるようになりました。 | |
UserString クラスに __getnewargs__()、__rmod__()、casefold()、format_map()、isprintable()、maketrans() メソッドが実装され、str の対応するメソッドと一致するようになりました。 | |
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() 関数が常に利用できるようになりました | |
注記