最有趣的創新:
- 賦值表達式:
新的 := 運算子允許您為表達式內的變數賦值。 例如:
如果 (n := len(a)) > 10:
print(f"列表太長({n} 個元素,預計 <= 10)") - 僅位置參數:
現在您可以指定哪些函數參數可以透過命名參數語法傳遞,哪些不能。 例子:
def f(a, b, /, c, d, *, e, f):
印製(a、b、c、d、e、f)f(10, 20, 30, d=40, e=50, f=60) # 好
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'你好世界{n=}。')
# 將列印「Hello world n=42」。 - 修正了finally區塊中的continue關鍵字(之前不起作用)。
其他:
- 您可以明確指定字節碼快取的路徑,而不是預設的 __pycache__。
- 調試和發布版本使用相同的 ABI。
來源: linux.org.ru