黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

聊聊 Python 的內(nèi)置電池

系統(tǒng) 1986 0

本文原創(chuàng)并首發(fā)于公眾號(hào)【 Python貓 】,未經(jīng)授權(quán),請(qǐng)勿轉(zhuǎn)載。

原文地址:https://mp.weixin.qq.com/s/XzCqoCvcpFJt4A-E4WMqaA

(一)

最近,我突然想到一個(gè)問(wèn)題: 相比其它語(yǔ)言,有哪些概念或習(xí)慣叫法是 Python 特有的?

在朋友圈提出這個(gè)問(wèn)題后,我得到最多的回復(fù)是—— Pythonic 。這個(gè)回復(fù)一點(diǎn)都不意外,名字中自帶 Python 的,當(dāng)然是特有的啦,與它相似的,還有 Pythonista

這兩個(gè)詞是啥意思呢?Python 圈內(nèi)流傳著一個(gè)說(shuō)法“人生苦短,我用 Python”,人們相信存在著最佳的實(shí)踐方式,采用這種方式是最美的、最高效的、最優(yōu)雅的,也即是 Pythonic ,而這樣做的人(或以此為追求的人)則自稱是 Pythonista。這個(gè)稱號(hào)是有別于 Pythoner 或者 Pythonist 的,簡(jiǎn)單地說(shuō)就是,它更有追求、更有逼格。

除了以上兩個(gè),Python 還有眾多獨(dú)特的叫法,例如終生仁慈獨(dú)裁者、裝飾器、上下文管理器、推導(dǎo)式與生成式、鴨子類型、猴子補(bǔ)丁、魔術(shù)方法、GIL、內(nèi)置電池,等等。它們有的并不是 Python 所原創(chuàng)或獨(dú)有,但是卻因?yàn)樗艔V為人知,它們?cè)?Python 中是代表性的存在物。

(二)

這些內(nèi)容都很有意思,本文唯獨(dú)想聊聊它—— 內(nèi)置電池

Batteries Included 這個(gè)叫法是 Python 特有的,它指的是 Python 擁有“內(nèi)置電池”,也就是自帶豐富多樣的標(biāo)準(zhǔn)庫(kù),開(kāi)箱即用,動(dòng)力十足。

在《PEP 206 -- Python Advanced Library》中,它提出了“內(nèi)置電池的哲學(xué)”(Batteries Included Philosophy):擁有豐富而通用的標(biāo)準(zhǔn)庫(kù),無(wú)需用戶單獨(dú)下載就能立即使用。還說(shuō)這使得 Python 領(lǐng)先于很多項(xiàng)目。

根據(jù)官方文檔顯示,Python 內(nèi)置了 200 多個(gè)標(biāo)準(zhǔn)庫(kù),類型豐富多樣,包括字符處理、數(shù)據(jù)類型、數(shù)值計(jì)算、文件處理、并發(fā)執(zhí)行、網(wǎng)絡(luò)通信、多媒體服務(wù)、圖形界面、調(diào)試與開(kāi)發(fā)、以及操作系統(tǒng)專有服務(wù)等等。

內(nèi)置電池為 Python 提供了一種自給自足的能力(self-sufficient),在大多數(shù)情況下,用戶不需要再去下載和安裝單獨(dú)的軟件包,因此也免去一大堆的依賴問(wèn)題的折磨。

(三)

某些編程語(yǔ)言中也有內(nèi)置電池的概念,例如 Perl、Ruby、PHP等等,還有的語(yǔ)言會(huì)強(qiáng)調(diào)自己內(nèi)置了強(qiáng)大的功能,例如 Erlang(一切皆進(jìn)程)、Go(goroutine 機(jī)制)。

然而,這個(gè)叫法在 Python 中被叫得最響,也被推廣到了技術(shù)生態(tài)中的其它項(xiàng)目里,幾乎成了 Python 的專有名詞。

在維基百科上搜索“Batteries Included”,該條目有 4 個(gè)解釋,其中之一表明它是 Python 的 Motto ,這個(gè)詞的意思是座右銘、格言、箴言,足見(jiàn)分量之重了吧。

(四)

內(nèi)置電池做不到無(wú)所不包,因此需要所謂的第三方庫(kù),而 Python 也以三方庫(kù)豐富而聞名。

PyPI Python Package Index 的簡(jiǎn)稱,即 Python 庫(kù)索引,是一個(gè)用來(lái)管理三方庫(kù)的項(xiàng)目,根據(jù)網(wǎng)站顯示,目前有 18 萬(wàn)個(gè)三方庫(kù),以及它們的 135 萬(wàn)個(gè)發(fā)行版本。

就是說(shuō),Python 也擁有強(qiáng)大的外置電池,所以其實(shí)它是 雙驅(qū)動(dòng) 的。

(五)

雙驅(qū)動(dòng)本來(lái)相安無(wú)事,互為表里,但是,內(nèi)置電池卻遭到了越來(lái)越多的指責(zé)。

在今年 5 月的官方 PyCon 大會(huì)上,演講嘉賓 Amber Brown 做了專門(mén)的分享,主要話題就是吐槽這內(nèi)置電池正在“漏電”(Leaking):

  • 應(yīng)用程序需要的不僅僅是標(biāo)準(zhǔn)庫(kù)
  • 質(zhì)量差,功能落后,代碼過(guò)時(shí)
  • 標(biāo)準(zhǔn)庫(kù)模塊排擠創(chuàng)新

她的想法是移除一些標(biāo)準(zhǔn)庫(kù),例如 asyncio 及大多數(shù)的新特性,遷移到 PyPI,擁抱社區(qū)。這樣做的預(yù)期效果是:內(nèi)置電池會(huì)變得輕量小型化、高質(zhì)量,同時(shí)三方庫(kù)的生態(tài)系統(tǒng)也能得到進(jìn)化。

其他開(kāi)發(fā)人員對(duì)這個(gè)話題也進(jìn)行了討論。

標(biāo)準(zhǔn)庫(kù)的維護(hù)團(tuán)隊(duì)表示,遷移部分模塊的工作已經(jīng)在展開(kāi)了,但這需要經(jīng)過(guò)仔細(xì)的設(shè)計(jì),另外,不容忽視的是,遷移庫(kù)到 PyPI 也要求測(cè)試配置的工作量。

還有人提出反對(duì)意見(jiàn),認(rèn)為精簡(jiǎn)標(biāo)準(zhǔn)庫(kù)可能會(huì)破壞下游代碼,而且有的企業(yè)用戶只信任標(biāo)準(zhǔn)庫(kù)而排斥三方庫(kù),這無(wú)疑會(huì)增加用戶的負(fù)擔(dān)。

(六)

我們的很多電子設(shè)備都是由電池驅(qū)動(dòng)的,雖然它們的形式與材質(zhì)各種各樣,但是不可避免會(huì)遇到老化的問(wèn)題(某種手機(jī)甚至?xí)ǎ?

Python 的內(nèi)置電池也不例外,可是,這個(gè)電池的修理或替換,卻不像物理世界的電池那般容易。

官方在十幾年前提出了 PEP-206 與 PEP-3108,那時(shí)核心開(kāi)發(fā)者們就發(fā)現(xiàn)有些標(biāo)準(zhǔn)庫(kù)容易被入侵、設(shè)計(jì)不佳、有更好的替代庫(kù),因此推薦了很多款第三方庫(kù),以作為標(biāo)準(zhǔn)庫(kù)的替代選項(xiàng)。這些年來(lái),很多廢棄的庫(kù)已退出舞臺(tái),但更多的新庫(kù)也加了進(jìn)來(lái),革命尚未成功。

今年 5 月,在 PyCon 大會(huì)引發(fā)的討論之后,有開(kāi)發(fā)者發(fā)起了 PEP-594,提議將“壞死的電池”(dead batteries)移出標(biāo)準(zhǔn)庫(kù)。

目前,該 PEP 仍處于草案(Draft)狀態(tài),但已基本成為社區(qū)共識(shí)。

PEP 中提議移除工作從 Python 3.8 開(kāi)始,因?yàn)樗陌l(fā)布時(shí)間剛好在 Python 2.7 停止維護(hù)之前,可以平滑地承接大版本遷移的用戶。然后,按照有序的清理計(jì)劃,最終在 Python 3.10 版本完成所有廢棄模塊的移除。

也就是說(shuō),內(nèi)置電池的“手術(shù)”加速了,未來(lái)幾年里,這將成為一個(gè)常態(tài)。

(七)

內(nèi)置電池的哲學(xué)助力了 Python 發(fā)展壯大,攻城略地,成為最主流的編程語(yǔ)言之一。

然而它面臨的挑戰(zhàn)是:功能齊備與輕量可維的矛盾、官方支撐與社區(qū)分治的選擇,因此,必然會(huì)走到今天的局面。

正如任何大型項(xiàng)目都可能遇到內(nèi)存泄漏與性能退化的問(wèn)題一樣,Python 這個(gè)項(xiàng)目也是。剔除壞死的組織,精兵簡(jiǎn)政,革故鼎新,跟上時(shí)代,這些是 Python 核心團(tuán)隊(duì)正在做的事。

從去年末以來(lái),我持續(xù)關(guān)注著 Python 最高決策層的選舉,而在上個(gè)月,我恰好翻譯了一篇文章《GIL 已經(jīng)被殺死了么?》介紹了 GIL 的移除計(jì)劃。

這些事件都表明著一件事: Python 充滿活力,大蟒蛇蛻皮后,將會(huì)迎來(lái)新生。

我們何其幸運(yùn),正好作為見(jiàn)證者。其它就不用多說(shuō)了,重溫一下這個(gè)偉大的口號(hào)吧——人生苦短,我用 Python。

公眾號(hào)【 Python貓 】, 本號(hào)連載優(yōu)質(zhì)的系列文章,有喵星哲學(xué)貓系列、Python進(jìn)階系列、好書(shū)推薦系列、技術(shù)寫(xiě)作、優(yōu)質(zhì)英文推薦與翻譯等等,歡迎關(guān)注哦。后臺(tái)回復(fù)“ 愛(ài)學(xué)習(xí) ”,免費(fèi)獲得一份學(xué)習(xí)大禮包。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論