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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python 官网宣布,正式发布 Python 3.8.0!

發(fā)布時(shí)間:2024/9/15 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 官网宣布,正式发布 Python 3.8.0! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來源:python.org

編輯:肖琴,轉(zhuǎn)自:新智元

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

Python 官網(wǎng)靜悄悄地發(fā)布了一則大消息:正式發(fā)布 Python 3.8.0!新版本較3.7版增加了一大波新功能和優(yōu)化,來與 AI 大咖一起參與討論吧~

近期,Python 官網(wǎng)宣布,正式發(fā)布 Python 3.8.0

Python 3.8.0 現(xiàn)已推出。

代表 Python 開發(fā)社區(qū)和 Python 3.8 發(fā)布團(tuán)隊(duì),我們很高興地宣布 Python 3.8.0 現(xiàn)在已經(jīng)可以使用。

Python 3.8.0 是 Python 語言的最新正式版,包含許多新功能和優(yōu)化。

Python 的大多數(shù)第三方庫也應(yīng)該很快就會支持 3.8.0 軟件包。

有關(guān) 3.8 版本功能的更多信息,請參閱 “Python 3.8 新特性” 文檔。所有更改的詳細(xì)信息都可以在更改日志中找到。

從 2019 年 12 月開始,3.8 系列的維護(hù)版本將定期每兩個(gè)月發(fā)布一次。

我們希望您喜歡 Python 3.8!

感謝所有幫助 Python 開發(fā)和這些發(fā)布的志愿者!歡迎通過志愿或組織捐贈支持 Python 軟件基金會的工作。

Python 3.8.0 重要新特性&優(yōu)化

那么,這次新發(fā)布的 Python 3.8.0 有哪些重要的改進(jìn)呢?以下是是 Python 3.8 相比 3.7 的新增特性。

  • PEP 572,賦值表達(dá)式

  • PEP 570,僅限位置形參

  • PEP 587,Python 初始化配置(改進(jìn)的嵌入)

  • PEP 590,Vectorcall:用于 CPython 的快速調(diào)用協(xié)議

  • PEP 578,?Python Runtime Audit Hooks

  • PEP 574,具有外部數(shù)據(jù)緩沖區(qū)的 pickle 協(xié)議 5

  • 與打字相關(guān):PEP 591(最終限定詞),PEP 586(文學(xué)類型)和 PEP 589(TypedDict)

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

  • 調(diào)試構(gòu)建使用與發(fā)布構(gòu)建相同的 ABI

  • f - 字符串支持?=?用于自動(dòng)記錄表達(dá)式和調(diào)試文檔

  • 在 Windows 上,默認(rèn) asyncio 事件循環(huán)現(xiàn)在是 ProactorEventLoop

  • 在 macOS 上,spawn?啟動(dòng)方法默認(rèn)使用 multiprocessing

  • multiprocessing?現(xiàn)在可以使用共享內(nèi)存段來避免進(jìn)程之間的酸洗成本

  • typed_ast?被合并回 CPython

  • LOAD_GLOBAL?速度加快了 40%

  • pickle?現(xiàn)在默認(rèn)使用協(xié)議 4,提高了性能

接下來,我們重點(diǎn)來看幾個(gè)(來自Python 3.8 文檔)。

賦值表達(dá)式

Python 3.8.0 有一個(gè)新的語法:=,它將值賦給一個(gè)更大的表達(dá)式中的變量。它被親切地稱為 “海象運(yùn)算符”(walrus operator),因?yàn)樗L得像海象的眼睛和象牙。
海象

這個(gè) “海象運(yùn)算符” 在某些時(shí)候可以讓你的代碼更整潔,比如:

在這個(gè)示例中,賦值表達(dá)式可以避免調(diào)用?len ()?兩次:

if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")
類似的益處還可出現(xiàn)在正則表達(dá)式匹配中需要使用兩次匹配對象的情況中,一次檢測用于匹配是否發(fā)生,另一次用于提取子分組:

discount = 0.0 if (mo := re.search(r'(\d+)% discount', advertisement)): discount = float(mo.group(1)) / 100.0
此運(yùn)算符也適用于配合 while 循環(huán)計(jì)算一個(gè)值來檢測循環(huán)是否終止,而同一個(gè)值又在循環(huán)體中再次被使用的情況:

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

另一個(gè)值得介紹的用例出現(xiàn)于列表推導(dǎo)式中,在篩選條件中計(jì)算一個(gè)值,而同一個(gè)值又在表達(dá)式中需要被使用:

[clean_name.title() for name in names if (clean_name := normalize('NFC', name)) in allowed_names]
請盡量將海象運(yùn)算符的使用限制在清晰的場合中,以降低復(fù)雜性并提升可讀性。

了解詳情:https://www.python.org/dev/peps/pep-0572(由 Morehouse 在 bpo-35224 中貢獻(xiàn)。)

僅限位置形參

新增了一個(gè)函數(shù)形參語法?/用來指明某些函數(shù)形參必須使用僅限位置而非關(guān)鍵字參數(shù)的形式。這種標(biāo)記語法與通過 help ()所顯示的使用 Larry Hastings 的 Argument Clinic 工具標(biāo)記的 C 函數(shù)相同。

在下面的例子中,形參?a?和?b?為僅限位置形參,c?或?d?可以是位置形參或關(guān)鍵字形參,而?e?或?f?要求為關(guān)鍵字形參:

def f(a, b, /, c, d, *, e, f): print(a, b, c, d, e, f)

以下均為合法的調(diào)用:

f(10,?20,?30,?d=40,?e=50,?f=60)

但是,以下均為不合法的調(diào)用:f(10, b=20, c=30, d=40, e=50, f=60) # b cannot be a keyword argument f(10, 20, 30, 40, 50, f=60) # e must be a keyword argument
這種標(biāo)記形式的一個(gè)用例是它允許純 Python 函數(shù)完整模擬現(xiàn)有的用 C 代碼編寫的函數(shù)的行為。例如,內(nèi)置的 pow ()?函數(shù)不接受關(guān)鍵字參數(shù):

def pow(x, y, z=None, /): "Emulate the built in pow() function" r = x ** y return r if z is None else r%z
另一個(gè)用例是在不需要形參名稱時(shí)排除關(guān)鍵字參數(shù)。例如,內(nèi)置的 len ()?函數(shù)的簽名為 len (obj, /)。這可以排除如下這種笨拙的調(diào)用形式:

len(obj='hello') # The "obj" keyword argument impairs readability

另一個(gè)益處是將形參標(biāo)記為僅限位置形參將允許在未來修改形參名而不會破壞客戶的代碼。例如,在 statistics 模塊中,形參名 dist 在未來可能被修改。這使得以下函數(shù)描述成為可能:

def quantiles(dist, /, *, n=4, method='exclusive') ...
由于在?/左側(cè)的形參不會被公開為可用關(guān)鍵字,其他形參名仍可在**kwargs?中使用:

>>> def f(a, b, /, **kwargs): ... print(a, b, kwargs) ... >>> f(10, 20, a=1, b=2, c=3) # a and b are used in two ways 10 20 {'a': 1, 'b': 2, 'c': 3}

這極大地簡化了需要接受任意關(guān)鍵字參數(shù)的函數(shù)和方法的實(shí)現(xiàn)。例如,下面是 collections 模塊中的代碼摘錄:

class Counter(dict): def __init__(self, iterable=None, /, **kwds): # Note "iterable" is a possible keyword argument
了解詳情:https://www.python.org/dev/peps/pep-0570(由 Pablo Galindo 在 bpo-36540?中貢獻(xiàn)。)

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

新增的 PYTHONPYCACHEPREFIX 設(shè)置 (也可使用?-Xpycache_prefix) 可將隱式的字節(jié)碼緩存配置為使用單獨(dú)的并行文件系統(tǒng)樹,而不是默認(rèn)的每個(gè)源代碼目錄下的__pycache__?子目錄。

緩存的位置會在 sys.pycache_prefix 中報(bào)告 (None 表示默認(rèn)位置即?__pycache__?子目錄)。

(由 Carl Meyer 在 bpo-33499 中貢獻(xiàn)。)

調(diào)試構(gòu)建使用與發(fā)布構(gòu)建相同的 ABI

發(fā)布構(gòu)建和調(diào)試構(gòu)建現(xiàn)在都是 ABI 兼容的:定義 Py_DEBUG宏不會再啟用 Py_TRACE_REFS宏,它引入了唯一的 ABI 不兼容性。Py_TRACE_REFS宏添加了 sys.getobjects ()?函數(shù)和 PYTHONDUMPREFS 環(huán)境變量,它可以使用新的 ./configure --with-trace-refs構(gòu)建選項(xiàng)來設(shè)置。(由 Victor Stinner 在 bpo-36465 中貢獻(xiàn)。)

f - 字符串支持?=?用于自動(dòng)記錄表達(dá)式和調(diào)試文檔

增加=說明符用于 f-string。形式為f'{expr=}'的 f - 字符串將擴(kuò)展表示為表達(dá)式文本,加一個(gè)等于號,再加表達(dá)式的求值結(jié)果。例如:

>>> user = 'eric_idle' >>> member_since = date(1975, 7, 31) >>> f'{user=} {member_since=}' "user='eric_idle' member_since=datetime.date(1975, 7, 31)"
通常的?f - 字符串格式說明符?允許更細(xì)致地控制所要顯示的表達(dá)式結(jié)果:

>>> delta = date.today() - member_since >>> f'{user=!s} {delta.days=:,d}' 'user=eric_idle delta.days=16,075'

=說明符將輸出整個(gè)表達(dá)式,以便詳細(xì)演示計(jì)算過程:

>>> print(f'{theta=} {cos(radians(theta))=:.3f}') theta=30 cos(radians(theta))=0.866
(由 Eric V. Smith 和 Larry Hastings 在 bpo-36817 中貢獻(xiàn)。)

PEP 587: Python 初始化配置?
PEP 587 增加了一個(gè)新的 C API 用來配置 Python 初始化,提供對整個(gè)配置過程的更細(xì)致控制以及更好的錯(cuò)誤報(bào)告。

Vectorcall: 用于 CPython 的快速調(diào)用協(xié)議?
添加 "vectorcall" 協(xié)議到 Python/C API。它的目標(biāo)是對已被應(yīng)用于許多類的現(xiàn)有優(yōu)化進(jìn)行正式化。任何實(shí)現(xiàn)可調(diào)用對象的擴(kuò)展類型均可使用此協(xié)議。
此特性目前為暫定狀態(tài),計(jì)劃在 Python 3.9 將其完全公開。
了解詳情:https://www.python.org/dev/peps/pep-0590(由 Jeroen Demeyer 和 Mark Shannon 在 bpo-36974 中貢獻(xiàn)。)

具有外部數(shù)據(jù)緩沖區(qū)的 pickle 協(xié)議 5
當(dāng)使用 pickle 在 Python 進(jìn)程間傳輸大量數(shù)據(jù)以充分發(fā)揮多核或多機(jī)處理的優(yōu)勢時(shí),非常重要一點(diǎn)是通過減少內(nèi)存拷貝來優(yōu)化傳輸效率,并可能應(yīng)用一些定制技巧例如針對特定數(shù)據(jù)的壓縮。
pickle 協(xié)議 5 引入了對于外部緩沖區(qū)的支持,這樣 PEP 3118 兼容的數(shù)據(jù)可以與主 pickle 流分開進(jìn)行傳輸,這是由通信層來確定的。
了解詳情:https://www.python.org/dev/peps/pep-0574(由 Antoine Pitrou 在 bpo-36785 中貢獻(xiàn)。)
更多詳細(xì)特性,請查閱Python 3.8.0文檔:https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html


連續(xù)三年奪冠,Python為什么這么受歡迎?

Python 已經(jīng)成為最受歡迎的編程語言。
在2019年度 IEEE Spectrum 編程語言排行榜中,Python 不負(fù)眾望,穩(wěn)居榜首,而且連續(xù)三年奪冠。

IEEE Spectrum 2019 十大編程語言排行如下

Python 的流行在很大程度上是受了大量可用專用庫的驅(qū)動(dòng),特別是在人工智能領(lǐng)域中。事實(shí)上,Keras 庫對深度學(xué)習(xí)開發(fā)人員影響很大。但深度學(xué)習(xí)并不是 Python 產(chǎn)生巨大的影響的唯一領(lǐng)域,微處理器計(jì)算能力的顯著提高意味著嵌入式版本的 Python:如 CircuitPython 和 MicroPython,正越來越受制造商的歡迎。

而 Python 為何能連續(xù)三年奪冠?

Python 的高速發(fā)展主要原因是軟件工程的蓬勃發(fā)展,它吸引了許多零基礎(chǔ)的初學(xué)者。Java 的編程方法對于初學(xué)者來說太冗長了,單單想要完全理解和運(yùn)行在 Java 中的 “hello world” 這樣的簡單程序,你就需要去了解類、靜態(tài)方法和包。在 C 語言中,這要簡單一些,但是在內(nèi)存管理上還是會出現(xiàn)一些問題。但在 Python 這里,就只是一行代碼的事。所以,Python 越來越流行,被越來越多的開發(fā)者使用。
對初學(xué)者友好,是 Python 用戶快速增加的原因之一。如果你還不了解Python,那么最近微軟推出的一套免費(fèi)入門教程是很好的選擇。
視頻地址:
https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
這套視頻教程名為 Python for Beginners,由微軟高級項(xiàng)目經(jīng)理 Christopher Harrison、以及微軟 AI Gaming 的商業(yè)開發(fā)經(jīng)理 Susan Ibach 共同講解,在課程中加入了他們對 Python 的見解,一共有 44 個(gè)視頻。

這套課程最大的特定是輕松簡潔,一上線就很受歡迎,5 天視頻播放量超 25 萬,更一度登上 GitHub 趨勢榜第一名。

我應(yīng)該升級到 Python 3.8 嗎?

很簡單,如果你想嘗試前面介紹的 Python 3.8 的任何新功能,那么就應(yīng)該升級到 Python 3.8。像 pyenv 和 Anaconda 這樣的工具可以很容易地并排安裝多個(gè)版本的 Python。或者,你也可以運(yùn)行官方的 Python 3.8 Docker 容器。嘗試使用一下 Python 3.8,肯定會眼前一亮~

不過,是否應(yīng)該將生產(chǎn)環(huán)境升級到 Python 3.8 呢?這需要考慮你的項(xiàng)目是否依賴 Python 3.8 的新功能。升級環(huán)境以運(yùn)行 Python 3.8 是非常安全的,而且也能利用新版本中的優(yōu)化。不過,如果你想保守一點(diǎn),可以堅(jiān)持到第一個(gè)維護(hù)版本(Python 3.8.1)發(fā)布時(shí)再升級。

如何評價(jià) Python 3.8?歡迎來與大咖一起討論~

參考鏈接:
https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html
End

推薦閱讀:(點(diǎn)擊標(biāo)題即可跳轉(zhuǎn))

來和小伙伴們一起向上生長呀!

掃描下方二維碼,添加小詹微信,可領(lǐng)取千元大禮包并申請加入 Python 學(xué)習(xí)交流群,群內(nèi)僅供學(xué)術(shù)交流,日常互動(dòng),如果是想發(fā)推文、廣告、砍價(jià)小程序的敬請繞道!一定記得備注「交流學(xué)習(xí)」,我會盡快通過好友申請哦!

?長按識別,添加微信

(添加人數(shù)較多,請耐心等待)

總結(jié)

以上是生活随笔為你收集整理的Python 官网宣布,正式发布 Python 3.8.0!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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