欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3.9 beta2版本發(fā)布了,看看這7個(gè)新的PEP都是什么

 更新時(shí)間:2020年06月10日 10:14:50   作者:豌豆花下貓  
這篇文章主要介紹了Python3.9 beta2版本發(fā)布了,看看這7個(gè)新的PEP都是什么,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

原作:Jake Edge

譯者:豌豆花下貓@Python貓

英文:https://lwn.net/Articles/819853/

隨著 Python 3.9.0b1 的發(fā)布,即開發(fā)周期中計(jì)劃的四個(gè) beta 版本的首個(gè),Python 3.9 的功能已經(jīng)是完善了。在 10 月發(fā)布最終版本之前,還會(huì)有許多測(cè)試和穩(wěn)定性方面的工作要做。

(譯注:beta1 版本發(fā)布于 5 月 18 日,作者文章寫于 5 月 20,而到本篇譯文發(fā)布時(shí),beta2 剛好在今天即 6 月 9 日發(fā)布,這是一個(gè)巧合?。?/p>

該發(fā)布說(shuō)明中列出了被 3.9 接受的 7 個(gè) Python 增強(qiáng)提案(PEP)。我們研究了其中的一些 PEP,看到有一些更新?,F(xiàn)在似乎是一個(gè)介紹 Python 3.9 帶來(lái)的一些東西的好時(shí)機(jī)。

1、字符串操作

有時(shí)最簡(jiǎn)單(表明上的)的事情最困難,或者至少會(huì)引起巨大的討論。其中大部分的爭(zhēng)議是關(guān)于命名(還能是什么?),但是給標(biāo)準(zhǔn)字符串對(duì)象添加函數(shù),來(lái)刪除前綴和后綴,這種想法是毫無(wú)爭(zhēng)議的。

是否可以將那些詞綴(前綴和后綴的統(tǒng)稱)指定為序列,以便在一次調(diào)用中處理多個(gè)詞綴,這一點(diǎn)尚不明確,最后它被從提案中刪除了,等待著其他人再次推動(dòng)更改。

在 3 月底,Dennis Sweeney 在 python-dev 郵件列表上請(qǐng)求核心開發(fā)者支持 PEP 616(“字符串刪除前綴和后綴的方法”)。他指出了自 2019 年 3 月以來(lái)關(guān)于該話題的 python-ideas 討論。埃里克·史密斯(Eric V. Smith)同意支持該 PEP,這促使 Sweeney 發(fā)布并啟動(dòng)了討論。

在最初版本中,他使用 cutprefix() 和 cutsuffix() 作為要添加給字符串對(duì)象的方法名。四種類型的 Python 對(duì)象將獲得新的方法:str(Unicode 字符串),byte(二進(jìn)制序列),bytearray(可變的二進(jìn)制序列)和 collections.UserString(字符串對(duì)象的一種封裝)。

它的寫法如下:

'abcdef'.cutprefix('abc') # 返回'def'
'abcdef'.cutsuffix('ef') # 返回'abcd'

針對(duì)命名部分,出現(xiàn)了一大堆的建議?;旧虾苌儆腥讼矚g“cut”,因此“strip”、“strim”和“remove”被提出來(lái)了,并且都獲得了一些支持。

stripprefix() 以及 stripsuffix() 由于 PEP 中指出的一種理由,至少是被部分地反對(duì)了;現(xiàn)有的“strip”函數(shù)令人困惑,因此應(yīng)避免重用該名稱。

str.lstrip() 和 str.rstrip() 方法也用于刪除前導(dǎo)字符和尾隨字符,但是它們對(duì)于真正在尋找 cutprefix() 功能的程序員來(lái)說(shuō)是一個(gè)困惑的來(lái)源。

*strip() 在調(diào)用時(shí)接收一個(gè)字符串參數(shù),但會(huì)將其視為一組字符,并從字符串開頭或結(jié)尾消除:

'abcdef'.lstrip('abc') # 返回“def”,符合預(yù)期
'abcbadefed'.lstrip('abc') # 返回'defed',完全不符合預(yù)期

最終,removeprefix() 和 removesuffix() 似乎占據(jù)了上風(fēng),這正是 Sweeney 最終改成的版本。Guido van Rossum 也支持這些名字。

埃里克·法格倫(Eric Fahlgren)這樣搞笑地總結(jié)了命名的爭(zhēng)論:

我認(rèn)為如果你先寫文檔,則名稱的選擇會(huì)更容易些:

  • cutprefix - 刪除指定的前綴。
  • trimprefix - 刪除指定的前綴。
  • stripprefix - 刪除指定的前綴。
  • removeprefix - 刪除指定的前綴。廢話 :)

Sweeney 更新了 PEP,回應(yīng)了許多評(píng)論,但還增加了提議將字符串元組作為詞綴的功能(可以在 PEP GitHub 倉(cāng)庫(kù)中看到該版本)。

但是史蒂文·達(dá)普拉諾(Steven D'Aprano)不確定這樣做是否合理。他指出,唯一接受元組參數(shù)的字符串操作是 str.startswith() 和 str.endswith(),而它們不返回字符串(只是一個(gè)布爾值)。他懷疑添加這一種接收元組參數(shù)卻返回字符串的方法,因?yàn)闊o(wú)論選擇何種規(guī)則來(lái)處理元組,對(duì)于某些人來(lái)說(shuō)都是“錯(cuò)誤的”選擇。

例如:

這里的困難在于,如果兩個(gè)或多個(gè)前綴都能匹配,則“剪切這些前綴中的一個(gè)”的概念是模棱兩可的。對(duì) startwith 沒有區(qū)別:

"extraordinary".startswith(('ex', 'extra'))

因?yàn)槭菑淖蟮接?,從最短到最大,甚至是隨機(jī)順序匹配都為True。但是對(duì)于 cutprefix,應(yīng)該刪除哪個(gè)前綴?

如他所說(shuō),建議的規(guī)則是使用從左到右處理元組的第一個(gè)匹配字符串,但是有些人可能想要最長(zhǎng)的匹配或最后一個(gè)匹配;這一切都取決于使用的上下文。他建議在提交添加此類行為之前,要給該功能更多的“浸泡時(shí)間”(譯注:即預(yù)備時(shí)間):“在添加多前綴/后綴的支持之前,我們首先應(yīng)該對(duì)簡(jiǎn)單的情況進(jìn)行一些實(shí)際的體驗(yàn)。”

伊?!じヂ‥than Furman)同意達(dá)普拉諾(D'Aprano)的意見。但是維克托·斯汀納(Victor Stinner)強(qiáng)烈贊成元組參數(shù)的想法,只不過(guò),他還想知道當(dāng)傳入的元組有空字符串時(shí),會(huì)怎么處理。根據(jù) PEP 提議,在處理元組時(shí)遇到空字符串(實(shí)際上可以匹配任何內(nèi)容)只會(huì)返回原始字符串,這會(huì)導(dǎo)致令人驚訝的結(jié)果:

cutsuffix("Hello World", ("", " World"))  # 返回 "Hello World"
cutsuffix("Hello World", (" World", ""))  # 返回 "Hello"

這個(gè)例子不太明顯;詞綴不一定是硬編碼的,因此空字符串可能會(huì)溜進(jìn)意想不到的位置。Stinner 建議如果遇到空字符串,則拋出 ValueError,類似于 str.split()。但是 Sweeney 決定完全刪除元組參數(shù)功能,以便“允許對(duì)此有更強(qiáng)見解的人在另外的 PEP 中提出并捍衛(wèi)一系列的語(yǔ)義”。他在 3 月 28 日發(fā)布了該 PEP 的最新版本。

4 月 9 日,Sweeney 發(fā)起了一個(gè)指導(dǎo)委員會(huì) issue,請(qǐng)求對(duì)其 PEP 進(jìn)行評(píng)審。4 月 20 日,Stinner 代表委員會(huì)接受了該提案。

這是一個(gè)很小的更改,但值得花時(shí)間確保它具有長(zhǎng)期適用的接口(和語(yǔ)義)。我們將在 Python 3.9 中看到 removeprefix() 和removesuffix()。

2、新解析器

并不令人感到驚訝的是,指導(dǎo)委員會(huì)已經(jīng)接受了我們?cè)?4 月中旬介紹過(guò)的 CPython 新解析器。PEP 617(“CPython 新的 PEG 解析器”)由 Python 創(chuàng)始人即前仁慈的獨(dú)裁者(BDFL) Guido van Rossum 以及 Pablo Galindo Salgado 和 Lysandros Nikolaou 共同提出。

它已經(jīng)運(yùn)行良好,并且在現(xiàn)有解析器的速度和內(nèi)存使用方面提升了 10% 以內(nèi)的性能。由于解析器是基于解析表達(dá)語(yǔ)法(PEG),因此也將簡(jiǎn)化語(yǔ)言規(guī)范。CPython 現(xiàn)有的 LL(1) 解析器存在諸多缺點(diǎn)和一些 hack,新的解析器將會(huì)消除掉。

這一更改為 Python 超越 LL(1) 語(yǔ)法鋪平了道路,盡管現(xiàn)有語(yǔ)言并不完全是 LL(1)。這一更改不會(huì)太快,因?yàn)橛?jì)劃是在 Python 3.9 的命令行中提供開關(guān),保持現(xiàn)有解析器可用。

但是 Python 3.10 將刪除現(xiàn)有的解析器,這可能會(huì)導(dǎo)致語(yǔ)言變更。如果做了那些更改,那么,其它的 Python 實(shí)現(xiàn)(例如 PyPy 和 MicroPython)就需要切換解析器的 LL(1) 實(shí)現(xiàn),以便跟上語(yǔ)言規(guī)范的要求。這可能會(huì)使核心開發(fā)者暫停進(jìn)行此類更改。

3、更多內(nèi)容

我們?cè)谌鲁醪榭戳?PEP 615(“在標(biāo)準(zhǔn)庫(kù)中支持 IANA 時(shí)區(qū)數(shù)據(jù)庫(kù)”)。它將在標(biāo)準(zhǔn)庫(kù)中添加一個(gè)zoneinfo 模塊,該模塊將有助于從 IANA 時(shí)區(qū)數(shù)據(jù)庫(kù)中(也稱為“Olson數(shù)據(jù)庫(kù)”)獲取時(shí)區(qū)信息,以填充時(shí)區(qū)對(duì)象。在撰寫本文時(shí),它看起來(lái)很順利。

在 3 月底,Paul Ganssle 請(qǐng)求就該 PEP 作出決議。他認(rèn)為在一個(gè)有趣的時(shí)間范圍內(nèi)接受它,可能會(huì)很有趣:

... 我希望(出于異想天開的原因)在 4 月 5 日(星期日)UTC 時(shí)間 02:00-04:00 或 13:00-17:30 之間接受它,因?yàn)檫@些時(shí)間代表著地球上某些地方的不明確時(shí)間(主要在澳大利亞)。還有另一個(gè)時(shí)機(jī),那就是在 4 月 19 日星期日 UTC 01:00-03:00 之間,這段時(shí)間在西撒哈拉是不明確的。
他意識(shí)到這可能難以實(shí)現(xiàn),它當(dāng)然不是優(yōu)先考慮的事。指導(dǎo)委員會(huì)沒有錯(cuò)過(guò)第二個(gè)時(shí)間窗太多;Barry Warsaw 于 4 月 20 日宣布接受該 PEP。

Python 現(xiàn)在將具有一種機(jī)制來(lái)訪問(wèn)系統(tǒng)的時(shí)區(qū)數(shù)據(jù)庫(kù),以創(chuàng)建和處理時(shí)區(qū)。另外,Python 軟件包索引(PyPI)中有一個(gè) tzdata 模塊,它為缺少 IANA 數(shù)據(jù)的系統(tǒng)提供這些數(shù)據(jù);它將由 Python 核心開發(fā)者維護(hù)。

PEP 593(“靈活的函數(shù)和變量注釋”)添加了一種將上下文特定的(context-specific)元數(shù)據(jù)與函數(shù)和變量關(guān)聯(lián)的方法。實(shí)際上,type hint 注解已擠出了很多年前在 Python 3.0 中實(shí)現(xiàn)的 PEP 3107(“函數(shù)注釋”)中設(shè)想的其它用例。PEP 593 使用注解的(Annotated)類型提示為這些用例創(chuàng)建了一種新的機(jī)制。

PEP 585(“標(biāo)準(zhǔn)集合中的類型提示泛型”)提供了另一種清除方法。它將允許刪除在 typing 模塊中維護(hù)的一組并行的類型別名,以支持泛型。例如,type.List 類型將不再需要支持諸如“dict[str,list[int]]”之類的注解(例如,一個(gè)帶有字符串鍵和整數(shù)列表的值的字典)。

字典“加法”的聯(lián)合操作也會(huì)是 Python 3.9 的一部分。它曾不時(shí)引起爭(zhēng)議,但是 2 月中旬,PEP 584(“給字典添加聯(lián)合操作符”)被 Van Rossum 推薦采納。指導(dǎo)委員會(huì)迅速同意了,該特性于 2 月 24 日合入。

最后一個(gè) PEP 是 PEP 602(“Python 的年度發(fā)布周期”)。如提案所書,它將發(fā)布節(jié)奏從每 18 個(gè)月更改為每年一次。但是,開發(fā)和發(fā)布周期是重疊的,因此整個(gè)功能開發(fā)需要 12 個(gè)月的時(shí)間。當(dāng)?shù)谝粋€(gè) Python 3.9 beta 版本發(fā)布時(shí)(即現(xiàn)在),Python 3.10 的功能開發(fā)就開始了。請(qǐng)繼續(xù)關(guān)注來(lái)年的下一輪 PEP。

到此這篇關(guān)于Python3.9 beta2版本發(fā)布了,看看這7個(gè)新的PEP都是什么的文章就介紹到這了,更多相關(guān)Python3.9 beta2版本新PEP內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python入門之井字棋小游戲

    python入門之井字棋小游戲

    這篇文章主要為大家詳細(xì)介紹了python入門學(xué)習(xí)之井字棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • python服務(wù)器端收發(fā)請(qǐng)求的實(shí)現(xiàn)代碼

    python服務(wù)器端收發(fā)請(qǐng)求的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python服務(wù)器端收發(fā)請(qǐng)求的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-09-09
  • 快速部署 Scrapy項(xiàng)目scrapyd的詳細(xì)流程

    快速部署 Scrapy項(xiàng)目scrapyd的詳細(xì)流程

    這篇文章主要介紹了快速部署 Scrapy項(xiàng)目scrapyd的詳細(xì)流程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • exe反編譯為.py文件的方法

    exe反編譯為.py文件的方法

    本文主要介紹了exe反編譯為.py文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • numpy ndarray 取出滿足特定條件的某些行實(shí)例

    numpy ndarray 取出滿足特定條件的某些行實(shí)例

    今天小編就為大家分享一篇numpy ndarray 取出滿足特定條件的某些行實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 如何基于Python實(shí)現(xiàn)數(shù)字類型轉(zhuǎn)換

    如何基于Python實(shí)現(xiàn)數(shù)字類型轉(zhuǎn)換

    這篇文章主要介紹了如何基于Python實(shí)現(xiàn)數(shù)字類型轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • pycharm新建一個(gè)python工程步驟

    pycharm新建一個(gè)python工程步驟

    在本文里小編給讀者們分享一篇關(guān)于pycharm怎么新建一個(gè)python工程的知識(shí)點(diǎn)和步驟內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • 使用tensorflow DataSet實(shí)現(xiàn)高效加載變長(zhǎng)文本輸入

    使用tensorflow DataSet實(shí)現(xiàn)高效加載變長(zhǎng)文本輸入

    今天小編就為大家分享一篇使用tensorflow DataSet實(shí)現(xiàn)高效加載變長(zhǎng)文本輸入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python命令行引導(dǎo)用戶填寫可用的ip地址和端口號(hào)實(shí)現(xiàn)

    python命令行引導(dǎo)用戶填寫可用的ip地址和端口號(hào)實(shí)現(xiàn)

    這篇文章主要為大家介紹了python命令行引導(dǎo)用戶填寫可用的ip地址和端口號(hào)實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Selenium自動(dòng)化測(cè)試實(shí)現(xiàn)窗口切換

    Selenium自動(dòng)化測(cè)試實(shí)現(xiàn)窗口切換

    這篇文章主要介紹了Selenium自動(dòng)化測(cè)試實(shí)現(xiàn)窗口切換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評(píng)論