python3.8新功能
Python3.8穩定版已發布,官網發布了一篇介紹新特性的文章,在此記錄。
新增賦值運算子:=
作用:把較大表達式中的某部分值賦給變數,因為看起來像海象的眼睛和牙齒,:= 操作符有個特別的名字:海象運算子
範例1:
if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")
用了:= ,避免呼叫len() 兩次。
新增(僅限位置參數)的語法符號 /
作用:表示一些函數的參數,必須指定位置,且不能用作關鍵字參數。
範例
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 字串新支援= 說明符,用於自記錄表達式和偵錯
f 字串是格式化的字串文字,它是在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 Runtime Audit Hooks / 運行時審計掛鉤
PEP 新增了審計掛鉤和驗證開放掛鉤。這兩個版本都可以從Python 和原生程式碼(native code)中獲得,允許用純Python 程式碼編寫的應用程式和框架利用額外的通知,同時還允許嵌入式人員或系統管理員在始終啟用審計的情況下部署Python 建置。
PEP 587: Python Initialization Configuration
PEP 587 新增了一個新的C API,來配置Python 初始化,提供對整個配置的更好控制和更好的錯誤報告。
其他
continue 終於可以合法出現finally: 區塊中了;
在Windows ,預設的非同步(asyncio)事件循環改成了ProactorEventLoop
在macOS 上, spawn start 方法預設加到multiprocessing 中了
現在multiprocessing可以使用共享記憶體段,來避免進程間的pickle 開銷;
##typed_ast 被共享記憶體段,來避免進程間的pickle 開銷;##typed_ast 被被指派合併回CPython 了;
LOAD_GLOBAL 現在快了40%;
pickle 現在預設使用協定4,提高了效能;
眾多python培訓影片,盡在python學習網,歡迎線上學習!
以上是python3.8新特性的詳細內容。更多資訊請關注PHP中文網其他相關文章!