您好,登錄后才能下訂單哦!
這篇文章主要介紹使用python3的原因,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
python2 str 對象的不確定性
'abcd'
如果你是 python3 用戶,你會說這是一個包含了”a”, “b”, “c”, 和 “d” 的字符串。
如果你是 python2 用戶,你可能會說這是一個包含了”a”, “b”, “c”, 和 “d” 的字符串,也可能會說這是表示 97, 98, 99, 和 100 的 bytes。
這意味著你得足夠細心,明確自己的 str 對象到底是文本還是 bytes ,不然就可能會在你的代碼里面埋下 bug。
沒錯,只要你是一個足夠細心,真正 “合格” 的程序員,這些問題都有解決方案。但是!這樣的假設(shè)是不切實際的,程序員是人,是人
就意味著一定會犯錯!
哲學層面的考量
設(shè)計任何一個面向所有人的系統(tǒng),原子層面的設(shè)計都要及其小心細致。
數(shù)據(jù)類型是一門編程語言最最最基礎(chǔ)的構(gòu)成,從哲學層面來講,構(gòu)建一座大廈的原子出現(xiàn)這種不確定性是讓人無法接受的!
Python之蟬 里面有一句話:
There should be one— and preferably only one —obvious way to do it.
完成一件事,給開發(fā)者太多的選擇并不就是好的,因為這可能會帶來溝通成本、選擇成本的增加,得不償失。
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)該都不會再發(fā)生了,因為這的確對開發(fā)者不友好。
Python2 str 對象的模糊性,這種原子層面的模糊性是不可接受的。
Python2 unicode 只是可選項,不是必選項,可選意味著有人不選。Python3 開始默認支持 unicode。
the sooner the better ,必做的事盡早做。
以上是使用python3的原因的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。