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

來源:聞數(shù)起舞? 頭條號(hào)
我們目前生活在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愛好者來說,顯然,有趣的時(shí)代即將到來。瀏覽三個(gè)版本(3.8、3.9和3.10)的發(fā)布時(shí)間表,敦促我在即將到來的有趣的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ā)布。
盡管未來的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)格的"
>>>?list(zip(['A',?'B',?'C',?'D'],?['Apple',?'Ball',?'Cat']))??
[('A',?'Apple'),?('B',?'Ball'),?('C',?'Cat')]?
>>>?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?
>>>?fruits?=?{'Mangos':?12,?'Figs':?100,?'Guavas':?3,?'Kiwis':?70}??
>>>?keys?=?fruits.keys()??
>>>?values?=?fruits.values()??
>>>?list(keys)??
['Mangos',?'Figs',?'Guavas',?'Kiwis']?
>>>?del?fruits['Figs']??
>>>?del?fruits['Guavas']??
>>>?print?(list(keys),?list(values))??
['Mangos',?'Kiwis']?[12,?70]?
#?returns?a?read-only?proxy?of?the?original?dictionary??
>>>?values.mapping??
mappingproxy({'Mangos':?12,?'Figs':?100,?'Guavas':?3,?'Kiwis':?70})??
>>>?values.mapping['Guavas']??
3?
>>>?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?
-END- 往期精彩推薦 --??
-- 2、Python 造假數(shù)據(jù),用Faker就夠了
-- 3、在Python中玩轉(zhuǎn)Json數(shù)據(jù)
--? 留下你的?“在看”?唄!

