最も興味深いイノベーション:
- 代入式:
新しい := 演算子を使用すると、式内の変数に値を割り当てることができます。 例えば:
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