新聞中心
python2 str 對象的不確定性

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比任城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式任城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋任城地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
'abcd'
如果你是 Python3 用戶,你會說這是一個包含了”a”, “b”, “c”, 和 “d” 的字符串。
如果你是 python2 用戶,你可能會說這是一個包含了”a”, “b”, “c”, 和 “d” 的字符串,也可能會說這是表示 97, 98, 99, 和 100 的 bytes。
這意味著你得足夠細心,明確自己的 str 對象到底是文本還是 bytes ,不然就可能會在你的代碼里面埋下 bug。
沒錯,只要你是一個足夠細心,真正 “合格” 的程序員,這些問題都有解決方案。但是!這樣的假設是不切實際的,程序員是人,是人
就意味著一定會犯錯!
推薦學習《python教程》
哲學層面的考量
設計任何一個面向所有人的系統(tǒng),原子層面的設計都要及其小心細致。
數(shù)據(jù)類型是一門編程語言最最最基礎的構(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 這樣大的 “向后不兼容” 的改變之后應該都不會再發(fā)生了,因為這的確對開發(fā)者不友好。
總結(jié)一下
Python2 str 對象的模糊性,這種原子層面的模糊性是不可接受的。
Python2 unicode 只是可選項,不是必選項,可選意味著有人不選。Python3 開始默認支持 unicode。
the sooner the better ,必做的事盡早做。
網(wǎng)站欄目:創(chuàng)新互聯(lián)Python教程:為什么使用python3
本文地址:http://www.dlmjj.cn/article/djhpggd.html


咨詢
建站咨詢
