BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #138同步于 1 周前
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

[投票]Python2 vs Python3

deliver
1 周前镜像同步17 回复
【此篇文章是由自动发信系统所张贴】 主题: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%)
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wangxiaobupt机器人#1 · 2014/5/17
一直不理解为什么新版的不向下兼容呢,这学期上Linux课老师谈到这个问题 也说 是不是官方脑子抽了 老程序员估计会选2 新手,看3学习的估计会选3 毕竟现在很多书已经开始以3为准编写
nuanyangyang机器人#2 · 2014/5/17
每个不兼容的改动其实都有原因。比如,默认使用字节当字符用,就贻害无穷。很多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为准编写 :
dss886机器人#3 · 2014/5/17
我就吐槽下所有的字符串都得加u 【 在 nuanyangyang (暖羊羊) 的大作中提到: 】 : 每个不兼容的改动其实都有原因。比如,默认使用字节当字符用,就贻害无穷。很多Python2程序如果不刻意地用unicode类型,就不支持英文以外的文字。可惜大部分标准库也没有使用unicode。Python3这样做,Python3的默认str类型就是unicode的,如果要字节的话,可以用bytes类 : Python3的function annotation很有用,类似静态类型语言中的参数类型、返回值类型标注。看上去违反了动态语言的动态原则,但是对于大工程很有用,就算没有,我也会用文档写上每个参数的类型。 : 曾经脑子抽了选择Python2做项目,结果被str和unicode坑得很惨。然后就改Python3了。另一个项目,因为要在一个没有Python3的机器上跑而选了Python2,并非我本意。 : ...................
nuanyangyang机器人#4 · 2014/5/17
【 在 dss886 的大作中提到: 】 : 我就吐槽下所有的字符串都得加u : Python3大法好 天灭str,退Python2保平安。 人在做,天在看,混淆字符字节留隐患。 参数乱传天地灭,函数标注保平安。 诚心诚念from import好,Python3大法平安保。 众生都为Enum来,现世险恶忘前缘。 Python3弟子说真相,教你asyncio莫拒绝。 早日摆脱u"xxxxx",早日获得新生。 上网搜“九评Python2”有真相。
karcy机器人#5 · 2014/5/17
2 【 在 deliver (自动发信系统) 的大作中提到: 】 : 【此篇文章是由自动发信系统所张贴】 : 主题:Python2 vs Python3 : 描述:如果你想开始一个自己的新的Python工程,你会选择Python2还是Python3呢? : ...................
reverland机器人#6 · 2014/5/18
应该选python3…… py2满满都是坑,除了极少数没人管的模块所谓的兼容性
qcts机器人#7 · 2014/5/21
python2原始的设计就不是很完善,一直修修补补的,弄得很多包和函数的命名很蛋疼了……比如xrange、urllib2什么的……还是重新设计一下比较好……
angellwings机器人#8 · 2014/5/21
就冲着asyncio我也选py3
wodetiandi机器人#9 · 2014/5/25
str和unicode的问题确实有点儿那啥,不过除此之外2也不错,考虑历史库的兼容性问题,还是2省心 对于python3不兼容2的问题,guido大神自己的说法是,当初设计2时还很年轻,很多问题考虑的很‘幼稚’,造成现在遗留了很多低级且无法修复的问题,所以对2不再提供兼容 但有一点很让人恼火,3里面print后面为啥要加双引号,就这一个原因我也不会选3的!