日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 3.8 稳定版正式发布,新特性全面解读

發(fā)布時間:2025/3/15 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 3.8 稳定版正式发布,新特性全面解读 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

早在之前關(guān)于 Python 新版本的文檔在官方一就直處于更新模式中,就在昨日 Python 3.8 穩(wěn)定版正式發(fā)布了,讓我們來看看新版本有哪些新特性呢?

Python 3.8.0 穩(wěn)定版的新特性

1PEP 572,賦值表達式

有一種新語法:=可將值賦給變量,作為較大表達式的一部分。由于它與海象的眼睛和象牙很像,因此被親切地稱為“海象操作員” 。

在此示例中,賦值表達式有助于避免調(diào)用 len()兩次:

if (n := len(a)) > 10:print(f"List is too long ({n} elements, expected <= 10)")

在正則表達式匹配期間會產(chǎn)生類似的好處,其中需要兩次匹配對象,一次是測試是否發(fā)生匹配,另一次是提取子組:

discount = 0.0 if (mo := re.search(r'(\d+)% discount', advertisement)): discount = float(mo.group(1)) / 100.0

該運算符對 while 循環(huán)也很有用,該循環(huán)計算一個值以測試循環(huán)終止,然后在循環(huán)體中再次需要相同的值:

# Loop over fixed length blocks while (block := f.read(256)) != '': process(block)

另一個具有啟發(fā)性的用例出現(xiàn)在列表理解中,其中表達式主體中還需要在過濾條件下計算出的值:

[clean_name.title() for name in namesif (clean_name := normalize('NFC', name)) in allowed_names]

嘗試限制使用海象運算符來清理可降低復雜性并提高可讀性的案例。

2PEP 570,僅位置的參數(shù)

有一個新的函數(shù)參數(shù)語法,/以指示某些函數(shù)參數(shù)必須在位置上指定,并且不能用作關(guān)鍵字參數(shù)。這 help() 與用 Larry Hastings 的 Argument Clinic 工具注釋的 C 函數(shù)所顯示的符號相同。

3并行文件系統(tǒng)緩存,用于編譯的字節(jié)碼

新的 PYTHONPYCACHEPREFIX 設(shè)置(也可作為 )將隱式字節(jié)碼緩存配置為使用單獨的并行文件系統(tǒng)樹,而不是每個源目錄中的默認子目錄。-X pycache_prefix__pycache__

緩存的位置報告在 sys.pycache_prefix (None指示__pycache__ 子目錄中的默認位置)。

4調(diào)試版本與發(fā)行版本共享 ABI

不管是在發(fā)布模式還是調(diào)試模式下構(gòu)建,Python 現(xiàn)在都使用相同的 ABI。在 Unix 上,當 Python 以調(diào)試模式構(gòu)建時,現(xiàn)在可以加載以發(fā)布模式構(gòu)建的 C 擴展和使用穩(wěn)定 ABI 構(gòu)建的 C 擴展

?

5f 字符串支持一個方便的 = 說明符進行調(diào)試

= 在 f-string 中添加了一個說明符。f 字符串(例如) f'{expr=}' 將擴展為表達式的文本,等號,然后擴展為求值表達式的表示形式

6PEP 578:Python運行時審核掛鉤

PEP 添加了“審核掛鉤”和“已驗證的打開掛鉤”。兩者都可以從 Python 和本機代碼獲得,從而允許使用純Python代碼編寫的應(yīng)用程序和框架利用額外的通知,同時還允許嵌入程序或系統(tǒng)管理員在始終啟用審核的情況下部署Python 版本。

7PEP 587:Python初始化配置

在 PEP 587 添加了新的 C API 以配置 Python 初始化,從而提供了對整個配置的更好控制和更好的錯誤報告。

?

該 PEP 還向這些內(nèi)部結(jié)構(gòu)添加了_PyRuntimeState.preconfig(PyPreConfig類型)和 PyInterpreterState.config(PyConfig類型)字段。PyInterpreterState.config 成為新的參考配置,替換全局配置變量和其他私有變量。

8Vectorcall:對于 CPython 的一個快速調(diào)用協(xié)議

“ vectorcall”協(xié)議已添加到 Python / C API。它旨在將已經(jīng)針對各種類進行的現(xiàn)有優(yōu)化形式化。任何實現(xiàn)可調(diào)用的擴展類型都可以使用此協(xié)議。目前這是臨時的,目的是使其在 Python 3.9 中完全公開。

9pickle 協(xié)議 5 用于出帶外數(shù)據(jù)緩沖器

當 pickle 用于在 Python 進程之間傳輸大數(shù)據(jù)以利用多核或多計算機處理時,重要的是通過減少內(nèi)存副本并可能通過應(yīng)用自定義技術(shù)(例如依賴數(shù)據(jù)的壓縮)來優(yōu)化傳輸。

該 pickle 協(xié)議5 引入用于出帶外緩沖器,其中支持可以根據(jù)通信層的判斷,與 PEP 3118 兼容的數(shù)據(jù)與主 pickle 流分開發(fā)送。

其他語言的變化

一個 continue 說法是非法 finally 條款因與實施問題。在Python 3.8中,這一限制被取消了。continue 現(xiàn)在在 finally: 塊中。

該 int 類型現(xiàn)在具有 as_integer_ratio() 與現(xiàn)有 float.as_integer_ratio() 方法兼容的新方法.

增加了對 \N{name} 的支持。

Dict 和 dictviews 現(xiàn)在可以使用反向插入順序進行迭代 reversed()。

函數(shù)調(diào)用中允許關(guān)鍵字名稱的語法進一步受到限制。特別是, f((keyword)=arg) 不再允許。

現(xiàn)在允許 Iterable 解包,而不使用括號 yield 和 return 語句。

不是有效轉(zhuǎn)義序列的反斜杠字符對 DeprecationWarning從Python 3.6 開始生成。在Python 3.8中它生成了一個SyntaxWarning代替。

SyntaxWarning 在某些情況下,編譯器會在元組或列表之前錯過逗號時生成

子類之間的算術(shù)運算 datetime.date 或 datetime.datetime 與datetime.timedelta 對象現(xiàn)在返回子類的實例,而不是基類。這也會影響其實現(xiàn)(直接或間接)使用 datetime.timedelta 算術(shù)的操作的返回類型。例如 datetime.datetime.astimezone()。

當 Python 解釋器被 Ctrl-C(SIGINT)中斷并且 KeyboardInterrupt 未捕獲到的結(jié)果異常時,Python 進程現(xiàn)在通過 SIGINT 信號或正確的退出代碼退出,以便調(diào)用進程可以檢測到它因 Ctrl 而死亡-C。POSIX 和 Windows 上的shell使用它來正確終止交互式會話中的腳本。

.........

新模塊

新 importlib.metadata 模塊提供(臨時)支持,用于從第三方程序包中讀取元數(shù)據(jù)。例如,它可以提取已安裝的軟件包的版本號,入口點列表等:

>>> # Note following example requires that the popular "requests" >>> # package has been installed.>>>>>> from importlib.metadata import version, requires, files>>> version('requests')'2.22.0'>>> list(requires('requests'))['chardet (<3.1.0,>=3.0.2)']>>> list(files('requests'))[:5][PackagePath('requests-2.22.0.dist-info/INSTALLER'), PackagePath('requests-2.22.0.dist-info/LICENSE'), PackagePath('requests-2.22.0.dist-info/METADATA'), PackagePath('requests-2.22.0.dist-info/RECORD'), PackagePath('requests-2.22.0.dist-info/WHEEL')]

?

改進模塊

異步

運行將啟動本地異步 REPL。這樣就可以快速測試具有頂級代碼的代碼。不再需要直接調(diào)用,這將在每次調(diào)用時產(chǎn)生一個新的事件循環(huán):python -m asyncioawaitasyncio.run()

$ python -m asyncio asyncio REPL 3.8.0Use "await" directly instead of "asyncio.run()".Type "help", "copyright", "credits" or "license" for more information.>>> import asyncio>>> await asyncio.sleep(10, result='hello')hello

在 Windows 上,默認事件循環(huán)現(xiàn)在為 ProactorEventLoop

AST

AST 節(jié)點現(xiàn)在具有 end_lineno 和 end_col_offset 屬性,可以提供節(jié)點末端的精確位置。(這僅適用于具有 lineno 和 col_offset 屬性的節(jié)點。)

新函數(shù) ast.get_source_segment() 返回特定 AST 節(jié)點的源代碼。

該 ast.parse() 函數(shù)具有一些新標志:

  • type_comments=True 使它返回的文本 PEP 484 和 與某些 AST 節(jié)點相關(guān)聯(lián)的 PEP 526 類型注釋;
  • mode='func_type' 可以用來解析 PEP 484 “簽名類型注釋”(針對功能定義 AST 節(jié)點返回);
  • feature_version=(3, N)允許指定較早的 Python 3版本。(例如,將 和視為非保留字。)feature_version=(3, 4)asyncawait

集合

現(xiàn)在的 _asdict() 方法 collections.namedtuple() 返回 dict 而不是collections.OrderedDict。之所以可行,是因為自 3.7 以來,常規(guī)命令就保證了排序。如果需要的其他功能 OrderedDict,建議的補救措施是將結(jié)果轉(zhuǎn)換為所需的類型:OrderedDict(nt._asdict())。

日期時間

添加了新的備用構(gòu)造函數(shù)datetime.date.fromisocalendar()和 datetime.datetime.fromisocalendar(),分別從 ISO 年,周號和工作日構(gòu)造date和 datetime 對象;這些是每個類的 isocalendar 方法的反函數(shù)。如果大家對Python感興趣的話,可以加一下我們的學習交流摳摳群哦:649,825,285,免費領(lǐng)取一套學習資料和視頻課程喲~

GC

get_objects() 現(xiàn)在可以接收可選的生成參數(shù),該參數(shù)指示從中獲取對象的生成。

單元測試

  • 添加 AsyncMock 以支持的異步版本 Mock。還添加了用于測試的適當?shù)男聰嘌院瘮?shù)。
  • 已添加 addModuleCleanup() 和 addClassCleanup() 進行單元測試以支持對 setUpModule() 和的 清理 setUpClass()。
  • 現(xiàn)在,一些模擬斷言函數(shù)還會在失敗時打印實際調(diào)用的列表。
  • unittest 該模塊獲得了對協(xié)程的支持,可以與協(xié)程一起使用unittest.IsolatedAsyncioTestCase。

例:

import unittest class TestRequest(unittest.IsolatedAsyncioTestCase): async def asyncSetUp(self): self.connection = await AsyncConnection() async def test_get(self): response = await self.connection.get("https://example.com") self.assertEqual(response.status_code, 200) async def asyncTearDown(self): await self.connection.close()if __name__ == "__main__": unittest.main()

.........

其他

  • 在 macOS 上,默認情況下現(xiàn)在在多處理中使用 spawn start 方法
  • 現(xiàn)在,多處理(multiprocessing)可以使用共享內(nèi)存段
  • typed_ast 合并回 CPython
  • LOAD_GLOBAL 現(xiàn)在快了 40%
  • pickle 現(xiàn)在默認使用協(xié)議 4,提高了性能

?

新增、改進具體信息太多,詳細的我們就不一一給大家羅列了,小伙伴們可邊用邊自行查看官方文檔了解新改變(詳細信息地址:https://docs.python.org/3.8/whatsnew/changelog.html#changelog)

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的Python 3.8 稳定版正式发布,新特性全面解读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲国产中文在线 | 亚洲精品国产福利 | 亚洲第一黄色片 | 动漫玉足吸乳羞免费网站玉足 | 在线看的免费网站 | 国产白浆一区二区 | 男男做爰猛烈啪啪高 | 国产浮力影院 | 黄色三级网络 | 精品人妻一区二区三区久久 | 国产综合视频一区二区 | 亚洲av无码乱码国产精品久久 | 国产精品久久麻豆 | 夜夜爱视频 | 在线观看无码精品 | 国产偷人| 亚洲一区精品在线观看 | 艳妇乳肉亭妇荡乳av | 欧日韩不卡在线视频 | 欧美成人高清在线 | 性欧美熟妇videofreesex | 精品一区二区三区欧美 | 欧美一级艳片视频免费观看 | 国产高清在线视频 | 日韩精品 欧美 | 欧美三级韩国三级日本三斤在线观看 | 午夜888 | 91国视频| av免费在线观看网址 | 少妇伦子伦精品无吗 | 日韩在线播放视频 | 免费三片在线观看网站v888 | 91大神久久 | 99re中文字幕 | 琪琪原网址 | 一道本久在线中文字幕 | 欧美人妖另类 | 成年人免费视频播放 | xxx性欧美 | 久久青青操 | 韩国女主播av | 国产香蕉97碰碰碰视频在线观看 | 鲁鲁狠狠狠7777一区二区 | 日韩99 | 欧美整片第一页 | 国产日视频 | 华人永久免费视频 | 欧美偷拍视频 | 日韩插| 在线资源站 | 亚洲一区二区三区免费观看 | 小婕子伦流澡到高潮h | 天天操操| 九九久久网 | 日韩视频免费观看高清 | 成人毛片在线视频 | аⅴ天堂中文在线网 | 奇米99| 免费无遮挡无码永久在线观看视频 | 亚洲Av无码成人精品区伊人 | 91视频免费看片 | 国产熟妇另类久久久久 | 91av成人| 五月综合色 | 欧美黑粗硬 | 污网站在线播放 | 丁香伊人| 色综合久久av | 亚洲最大网 | 一级片免费观看 | 亚洲第一成年网 | 高清一区二区三区四区五区 | 日本在线高清视频 | 色丁香久久 | 国产av成人一区二区三区 | 亚洲天堂男| 亚洲日本激情 | 国产怡红院| 动漫美女被吸乳奶动漫视频 | 撸撸在线视频 | 伊人久久大香线蕉 | 福利视频网站 | 五月婷影院 | 成人午夜精品视频 | 国产亚洲天堂网 | 精品视频区 | 人人草网| 精品97人妻无码中文永久在线 | 99久久精品国产一区二区三区 | 少妇高潮喷水在线观看 | 禁漫天堂黄漫画无遮挡观看 | 中文字幕资源站 | 亚洲成人黄色在线观看 | 久久e热| 美女又爽又黄又免费 | 男人网站在线观看 | 综合天天| 按摩害羞主妇中文字幕 | 91xxxxx|