Python 3.8 リリース

最も興味深いイノベーション:

  • 代入式:

    新しい := 演算子を使用すると、式内の変数に値を割り当てることができます。 例えば:
    if (n := len(a)) > 10:
    print(f"リストが長すぎます ({n} 個の要素、期待値 <= 10)")

  • 位置のみの引数:

    どの関数パラメータを名前付き引数構文で渡すことができ、どのパラメータを渡すことができないかを指定できるようになりました。 例:
    def f(a, b, /, c, d, *, e, f):
    print(a、b、c、d、e、f)

    f(10, 20, 30, d=40, e=50, f=60) # OK
    f(10, b=20, c=30, d=40, e=50, f=60) # エラー、`b` は名前付き引数にすることはできません
    f(10, 20, 30, 40, 50, f=60) # エラー、「e」は名前付き引数でなければなりません

    この変更により、開発者は API のユーザーを関数の引数名の変更から保護する方法が得られます。

  • 自己文書化式とデバッグ用に f-strings = をサポートします。

    デバッグ/ログメッセージを簡素化するためにシュガーを追加しました。
    N = 42
    print(f'Hello world {n=}.')
    # 「Hello world n=42」と出力されます。

  • finally ブロックの continue キーワードを修正しました (以前は機能していませんでした)。

その他:

  • デフォルトの __pycache__ の代わりにバイトコード キャッシュへのパスを明示的に指定できます。
  • デバッグ ビルドとリリース ビルドは同じ ABI を使用します。

出所: linux.org.ru

コメントを追加します