返回信息流【此篇文章是由自动发信系统所张贴】
主题:Python2 vs Python3
描述:如果你想开始一个自己的新的Python工程,你会选择Python2还是Python3呢?
发起人:nuanyangyang
类型:单选
截止日期:2014-11-01
链接:http://bbs.byr.cn/vote/view/5374
Python2 vs Python3(单选)发起时间:2014-05-17 17:28:32 截止日期:2014-11-01(已截止) 结果显示:无需投票 参与人数:137如果你想开始一个自己的新的Python工程,你会选择Python2还是Python3呢?更有可能是Python2:101(74%) 更有可能是Python3:36(26%)
这是一条镜像帖。来源:北邮人论坛 / python / #138同步于 1 周前
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[投票]Python2 vs Python3
deliver
1 周前镜像同步17 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
一直不理解为什么新版的不向下兼容呢,这学期上Linux课老师谈到这个问题 也说 是不是官方脑子抽了
老程序员估计会选2 新手,看3学习的估计会选3 毕竟现在很多书已经开始以3为准编写
每个不兼容的改动其实都有原因。比如,默认使用字节当字符用,就贻害无穷。很多Python2程序如果不刻意地用unicode类型,就不支持英文以外的文字。可惜大部分标准库也没有使用unicode。Python3这样做,Python3的默认str类型就是unicode的,如果要字节的话,可以用bytes类型。这样把很多事情变得清楚很多。Java反正从一开始String就是unicode字符串。
Python3的function annotation很有用,类似静态类型语言中的参数类型、返回值类型标注。看上去违反了动态语言的动态原则,但是对于大工程很有用,就算没有,我也会用文档写上每个参数的类型。
曾经脑子抽了选择Python2做项目,结果被str和unicode坑得很惨。然后就改Python3了。另一个项目,因为要在一个没有Python3的机器上跑而选了Python2,并非我本意。
【 在 wangxiaobupt 的大作中提到: 】
: 一直不理解为什么新版的不向下兼容呢,这学期上Linux课老师谈到这个问题 也说 是不是官方脑子抽了
: 老程序员估计会选2 新手,看3学习的估计会选3 毕竟现在很多书已经开始以3为准编写
:
我就吐槽下所有的字符串都得加u
【 在 nuanyangyang (暖羊羊) 的大作中提到: 】
: 每个不兼容的改动其实都有原因。比如,默认使用字节当字符用,就贻害无穷。很多Python2程序如果不刻意地用unicode类型,就不支持英文以外的文字。可惜大部分标准库也没有使用unicode。Python3这样做,Python3的默认str类型就是unicode的,如果要字节的话,可以用bytes类
: Python3的function annotation很有用,类似静态类型语言中的参数类型、返回值类型标注。看上去违反了动态语言的动态原则,但是对于大工程很有用,就算没有,我也会用文档写上每个参数的类型。
: 曾经脑子抽了选择Python2做项目,结果被str和unicode坑得很惨。然后就改Python3了。另一个项目,因为要在一个没有Python3的机器上跑而选了Python2,并非我本意。
: ...................
【 在 dss886 的大作中提到: 】
: 我就吐槽下所有的字符串都得加u
:
Python3大法好
天灭str,退Python2保平安。
人在做,天在看,混淆字符字节留隐患。
参数乱传天地灭,函数标注保平安。
诚心诚念from import好,Python3大法平安保。
众生都为Enum来,现世险恶忘前缘。
Python3弟子说真相,教你asyncio莫拒绝。
早日摆脱u"xxxxx",早日获得新生。
上网搜“九评Python2”有真相。
2
【 在 deliver (自动发信系统) 的大作中提到: 】
: 【此篇文章是由自动发信系统所张贴】
: 主题:Python2 vs Python3
: 描述:如果你想开始一个自己的新的Python工程,你会选择Python2还是Python3呢?
: ...................
str和unicode的问题确实有点儿那啥,不过除此之外2也不错,考虑历史库的兼容性问题,还是2省心
对于python3不兼容2的问题,guido大神自己的说法是,当初设计2时还很年轻,很多问题考虑的很‘幼稚’,造成现在遗留了很多低级且无法修复的问题,所以对2不再提供兼容
但有一点很让人恼火,3里面print后面为啥要加双引号,就这一个原因我也不会选3的!