<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 3.10 明年發(fā)布,看看都有哪些新特性?

          共 3071字,需瀏覽 7分鐘

           ·

          2020-09-01 18:53

          閱讀本文大概需要 2 分鐘。


          推薦三個(gè)網(wǎng)站

          1.Python進(jìn)階知識(shí):?http://python.iswbm.com?

          2.Python魔法技巧:?http://magic.iswbm.com?

          3.PyCharm 手冊(cè):?http://pycharm.iswbm.com


          我們目前生活在Python 3.8的穩(wěn)定時(shí)代,上周發(fā)布了Python的最新穩(wěn)定版本3.8.4。Python 3.9已經(jīng)處于其開發(fā)的beta階段,并且2020年7月3日預(yù)發(fā)布了beta版本(3.9.0b4),第五版beta預(yù)定于明天發(fā)布。3.9的第一個(gè)穩(wěn)定版本預(yù)計(jì)將在2020年10月發(fā)布。Python3.10的開發(fā)也將于2020年5月開始,并且第一個(gè)beta版本預(yù)計(jì)在2021年5月開始。
          對(duì)于Python愛好者來(lái)說,顯然,有趣的時(shí)代即將到來(lái)。瀏覽三個(gè)版本(3.8、3.9和3.10)的發(fā)布時(shí)間表,敦促我在即將到來(lái)的有趣的Python開發(fā)時(shí)間表中編制關(guān)鍵日期。
          "我媽媽總是說生活就像一盒巧克力。你永遠(yuǎn)都不知道會(huì)得到什么。" - 阿甘

          通常,在開發(fā)周期中會(huì)有4–5個(gè)beta版本,并且在第一個(gè)beta版本之后的版本中不會(huì)引入任何新功能。對(duì)于3.8,beta-1已于2019年6月發(fā)布;對(duì)于3.9,beta-1已于2020年5月發(fā)布。盡管未來(lái)的Python 3.10剛剛啟動(dòng),但官方網(wǎng)站已經(jīng)在其一些亮點(diǎn)中進(jìn)行了簡(jiǎn)要介紹。
          這篇文章旨在簡(jiǎn)要介紹時(shí)間軸,并預(yù)覽即將發(fā)布的新Python版本的主要功能,以改編Python網(wǎng)站上的官方示例。請(qǐng)注意,我們可能會(huì)在3.10版中看到更多新功能,并且隨著時(shí)間的推移,我將繼續(xù)更新以下列表。

          突出顯示Python 3.10中的功能

          (1) 二進(jìn)制表示中的頻率為1

          將引入一個(gè)新的方法bit_count(),該方法將返回整數(shù)的二進(jìn)制表示形式中存在的個(gè)數(shù)。結(jié)果將獨(dú)立于整數(shù)的符號(hào)。此功能的一個(gè)用例是在信息論中,其中對(duì)于兩個(gè)等長(zhǎng)的字符串,您可以找到兩個(gè)字符串不同的位置的總數(shù)。這種差異稱為漢明距離(參見Wiki)。在此處閱讀有關(guān)Python中此功能的歷史記錄。
          在后臺(tái),此方法僅調(diào)用strtype asstr.count('1')的count方法。以下示例對(duì)此進(jìn)行了說明:
          #?Positive?integer?
          >>>?num?=?108?
          #?Let's?first?get?the?binary?representation?of?num?
          >>>?bin(num)?
          '0b1101100'?
          >>>?num.bit_count()?
          4?
          #?Negative?integer?
          >>>?num?=?-108?
          >>>?bin(num)?
          '-0b1101100'?
          >>>?num.bit_count()?
          4?
          #?Under?the?hood?
          >>>?bin(num).count('1')?

          (2) 壓縮將是"嚴(yán)格的"

          新的可選關(guān)鍵字參數(shù)strict將添加到zip函數(shù)中。如果passstrict = True,則壓縮的可迭代項(xiàng)的長(zhǎng)度必須相等,否則將引發(fā)ValueError。在Python 3.9之前,如果要壓縮兩個(gè)不等長(zhǎng)的列表,則將得到長(zhǎng)度等于較小列表的輸出。
          如以下示例所示,在Python 3.10之前,zip()函數(shù)忽略了第一個(gè)列表中不匹配的'D'。相比之下,Python 3.10將引發(fā)ValueError。鑒于壓縮相同數(shù)量項(xiàng)目的直觀性,我喜歡此功能,因?yàn)樗鼏拘涯匦聶z查您的輸入。在PEP 618上了解有關(guān)此問題的更多信息。
          在Python 3.10之前:
          >>>?list(zip(['A',?'B',?'C',?'D'],?['Apple',?'Ball',?'Cat']))??
          [('A',?'Apple'),?('B',?'Ball'),?('C',?'Cat')]?

          在Python 3.10中:
          >>>?list(zip(['A',?'B',?'C',?'D'],?['Apple',?'Ball',?'Cat'],?strict=True))??
          Traceback?(most?recent?call?last):?...ValueError:?zip()?argument?1?is?longer?than?argument?2?

          (3) 字典的只讀視圖

          字典的三個(gè)鍵方法keys(),values()和items()返回類似于集合的對(duì)象,這些對(duì)象分別對(duì)應(yīng)于字典的鍵,值和項(xiàng)目的動(dòng)態(tài)視圖。您在這兩個(gè)視圖中所做的任何更改也將反映在原始詞典中。
          在Python 3.10中,從以上三種方法返回的所有視圖都將具有一個(gè)稱為mapping的附加屬性,該屬性將返回該映射的只讀代理。該只讀代理將包裝視圖引用的原始字典。以下示例對(duì)此進(jìn)行了說明:
          讓我們定義一個(gè)字典并將其鍵和值存儲(chǔ)在單獨(dú)的變量中:
          >>>?fruits?=?{'Mangos':?12,?'Figs':?100,?'Guavas':?3,?'Kiwis':?70}??
          >>>?keys?=?fruits.keys()??
          >>>?values?=?fruits.values()??
          >>>?list(keys)??
          ['Mangos',?'Figs',?'Guavas',?'Kiwis']?

          現(xiàn)在,我們使用thedel語(yǔ)句從此字典中刪除兩個(gè)元素。如果現(xiàn)在打印鍵和值,您將看到它僅返回其余項(xiàng)目。現(xiàn)在,原始詞典中的更改將反映在視圖中(此處為鍵和值)。
          >>>?del?fruits['Figs']??
          >>>?del?fruits['Guavas']??
          >>>?print?(list(keys),?list(values))??
          ['Mangos',?'Kiwis']?[12,?70]?

          現(xiàn)在,通過映射,您將仍然能夠找回原始字典的只讀代理。cool! 是不是
          #?returns?a?read-only?proxy?of?the?original?dictionary??
          >>>?values.mapping??
          mappingproxy({'Mangos':?12,?'Figs':?100,?'Guavas':?3,?'Kiwis':?70})??
          >>>?values.mapping['Guavas']??
          3?

          (4) 消除一些向后兼容性

          集合模塊的抽象基類(ABC)的別名支持將從Python 3.10開始刪除。因此,現(xiàn)在是停止忽略相應(yīng)的"棄用警告"并改編代碼的好時(shí)機(jī)。
          高達(dá)Python 3.9.0b4(于2020年7月3日發(fā)布)
          到現(xiàn)在為止,在DeprecationWarning中將直接從collections模塊中導(dǎo)入任何這些ABC。
          >>>?from?collections?import?ABC_Name?
          ?
          DeprecationWarning:?Using?or?importing?the?ABCs?from?'collections'?instead?of?from?'collections.abc'?is?deprecated?since?Python?3.3,and?in?3.9?it?will?stop?working?


          來(lái)源:聞數(shù)起舞


          好文和朋友一起看~
          瀏覽 55
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  美女草逼视频 | 狠狠干狠狠撸 | 男女啪啪国产免费网站 | 成年视频网站 | 欧美日韩成人一区二区在线观看 |