這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)更多人選擇python3的原因有哪些,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),小程序開發(fā),10余年建站對履帶攪拌車等多個(gè)行業(yè),擁有多年設(shè)計(jì)經(jīng)驗(yàn)。
我初學(xué) python 的時(shí)候,對為什么要同時(shí)存在 python2 和 python3 感到非常疑惑,當(dāng)時(shí)覺得,不就是print不一樣嗎?不就是在編碼上有些不同嗎?何必搞得這么分裂呢?
知乎上有個(gè)問答:Python 2 和 Python 3 有哪些主要區(qū)別? 看了一下,大部分回答都在羅列 “python2 和 python3 在語法和功能有哪些區(qū)別” 或者 “python3 相對 python2,做了哪些改進(jìn)”。我不打算羅列這些 list,我嘗試來回答這個(gè)問題:是什么原因,讓 python 社區(qū)做出了非 python3 不可的決定?
1 幾個(gè)重要的發(fā)展時(shí)間點(diǎn)
1968 ASCII標(biāo)準(zhǔn)發(fā)布
這個(gè)時(shí)期計(jì)算機(jī)幾乎都是 8 bits 的
numeric values (0 - 127)和字符一一對應(yīng),比如字符 ‘a(chǎn)’ 對應(yīng)的 numeric value 對應(yīng)
ASCII只是針對美國人的,這意味著無法支持其他語言體系。
Guido 于 1989年開始開發(fā) python 語言,于 1991 年二月份正式發(fā)布第一版
1991 年 8月份 unicode 標(biāo)準(zhǔn)發(fā)布
使用 16 bits,意味著能存放 65,536 個(gè)不同的字符
這也是目前使用最廣泛的編碼標(biāo)準(zhǔn)。
2004年 python 社區(qū)開始籌劃 python3。
從這你就能看出關(guān)鍵的一點(diǎn):python 正式發(fā)布的時(shí)候 unicode 標(biāo)準(zhǔn)還沒有出現(xiàn) ,python 在后面的發(fā)展過程中,的確加上了對 unicode 的支持,可這也只是一個(gè)可選的feature,不是強(qiáng)制性的!
2 python2 str 對象的不確定性
'abcd'
如果你是 python3 用戶,你會(huì)說這是一個(gè)包含了”a”, “b”, “c”, 和 “d” 的字符串。
如果你是 python2 用戶,你可能會(huì)說這是一個(gè)包含了”a”, “b”, “c”, 和 “d” 的字符串,也可能會(huì)說這是表示 97, 98, 99, 和 100 的 bytes。
這意味著你得足夠細(xì)心,明確自己的 str 對象到底是文本還是 bytes ,不然就可能會(huì)在你的代碼里面埋下 bug。
沒錯(cuò),只要你是一個(gè)足夠細(xì)心,真正 “合格” 的程序員,這些問題都有解決方案。但是!這樣的假設(shè)是不切實(shí)際的,程序員是人,是人就意味著一定會(huì)犯錯(cuò)!
03 哲學(xué)層面的考量
設(shè)計(jì)任何一個(gè)面向所有人的系統(tǒng),原子層面的設(shè)計(jì)都要及其小心細(xì)致。
數(shù)據(jù)類型是一門編程語言最最最基礎(chǔ)的構(gòu)成,從哲學(xué)層面來講,構(gòu)建一座大廈的原子出現(xiàn)這種不確定性是讓人無法接受的!
Python之蟬 里面有一句話:
There should be one— and preferably only one —obvious way to do it.
完成一件事,給開發(fā)者太多的選擇并不就是好的,因?yàn)檫@可能會(huì)帶來溝通成本、選擇成本的增加,得不償失。
python核心開發(fā)者 Brett Cannon 在他的一篇文章 Why Python 3 exists 中說:
And we made the change when we did because we figured the sooner the better.
the sooner the better ,一定要做的事越早越好。
不過他也說了,python2 到 python3 這樣大的 “向后不兼容” 的改變之后應(yīng)該都不會(huì)再發(fā)生了,因?yàn)檫@的確對開發(fā)者不友好。
4 總結(jié)一下
Python2 str 對象的模糊性,這種原子層面的模糊性是不可接受的。
Python2 unicode 只是可選項(xiàng),不是必選項(xiàng),可選意味著有人不選。Python3 開始默認(rèn)支持 unicode。the sooner the better ,必做的事盡早做。
上述就是小編為大家分享的更多人選擇python3的原因了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁標(biāo)題:更多人選擇python3的原因有哪些
文章起源:http://jinyejixie.com/article34/pppcpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站制作、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)