この記事では、Python 3.7におけるいくつかの大きな変更点と追加された機能を紹介します。
1.レガシーCロケールをUTF-8ベースのロケールに強制する
Python 3.7では、デフォルトのインタプリタコマンドラインインタフェースがアップグレードされ、自動的にそのロケールがUTF-8ベースのロケールに強制されます。自動設定LC_CTYPEというのは、ロケール対応C拡張(readlineなど)とコアインタプリタの両方が、ASCIIではなくデフォルトのテキストエンコーディングとしてUTF-8の使用を前提としていることを意味します。
stdoutとstdinのデフォルトのエラーハンドラは、(strictではなく)surrogateescapeです。 stderrの場合、ロケールに関係なく、バックスラッシュで置き換えられています。
デフォルトでは、ロケール強制はサイレントです。ただし、ロケール統合に関連する問題のデバッグを支援するため、PYTHONCOERCECLOCALE = warnと調整して明示的な警告を要求することができます。また、コアインタプリタの初期化中にレガシーCロケールがアクティブのままであれば、Pythonランタイムは警告を返すことができます。
2.CPythonにおけるスレッドロー
コメント