Python3.8 の新機能
Python3.8 の安定版がリリースされ、正式版がリリースされました。 Webサイトにて新機能紹介記事を公開しました。 注目記事はこちらに収録されています。
新しい代入演算子:=
関数: 大きな式の値の一部を変数に代入します。目に似ているためです。 := 演算子には特別な名前があります: Walrus Operator
例 1:
if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")
len() を 2 回呼び出すのを避けるために := を使用します。
新しい (位置パラメーターのみ) 構文記号 /
機能: 一部の関数のパラメーターは位置を指定する必要があり、キーワード パラメーターとして使用できないことを示します。
例
def f(a, b, /, c, d, *, e, f): print(a, b, c, d, e, f)
この例では、パラメーター a と b は位置パラメーターのみですが、c または d は位置パラメーターのみまたはキーワード パラメーターにすることができます。e と f はキーワード引数である必要があります。
新しい PYTHONPYCACHEPREFIX 設定 (-X pycache_prefix)
関数: の代わりに別の並列ファイル システム ツリーを使用するように暗黙的なバイトコード キャッシュを構成します。デフォルトの pycache サブディレクトリを使用します。各ソースディレクトリ。
#デバッグ ビルドはリリース ビルドと ABI を共有します
f 自己文書化式とデバッグのための string = 指定子の新しいサポート
f string はフォーマットされた文字列リテラルで、Python 3.6 で導入され、非常に普及しました。 今回、= 指定子のサポートが v3.8 で追加されました。>>> user = 'eric_idle'>>> member_since = date(1975, 7, 31)>>> f'{user=} {member_since=}'"user='eric_idle' member_since=datetime.date(1975, 7, 31)" >>> delta = date.today() - member_since>>> f'{user=!s} {delta.days=:,d}''user=eric_idle delta.days=16,075'
PEP 578: Python ランタイム監査フック / ランタイム監査フック
PEP は、監査フックと検証オープン フックを追加します。どちらのバージョンも Python とネイティブ コードで利用でき、純粋な Python コードで書かれたアプリケーションやフレームワークが追加の通知を利用できるようにすると同時に、エンベダーやシステム管理者が常に監査を有効にできるようにします。PEP 587: Python 初期化構成
PEP 587 では、Python 初期化を構成するための新しい C API が追加され、構成全体の制御が向上し、エラー レポートが改善されました。その他
Continuefinally は、finally: ブロック内に合法的に出現できます; Windows では、デフォルトの非同期 (asyncio) イベント ループが変更されましたProactorEventLoop へ #macOS では、spawn start メソッドがデフォルトでマルチプロセッシングに追加されますマルチプロセッシングは共有メモリ セグメントを使用して、プロセス間の pickle オーバーヘッドを回避できるようになりました;typed_ast がマージされましたCPython に戻りました;LOAD_GLOBAL が 40% 高速になりました;pickle はデフォルトでプロトコル 4 を使用するようになり、パフォーマンスが向上しました;多数の Python トレーニング ビデオ、すべて Python Learning Network 上にあります。オンライン学習へようこそ!
以上がPython3.8の新機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。