大游窝码农多,请教个问题,有多少人用的python3?当初搞出python3,跟python2很多地方不搭边是怎么想的?
整理时间:2014-01-20 02:42 来源:www.vimiy.com 作者:编辑 点击:次
【楼主】2014-01-25 16:46
» 大游窝码农多,请教个问题,有多少人用的python3?当初搞出python3,跟python2很多地方不搭边是怎么想的?
一直不解
python3都推出多少年了,一直不温不火的
网友评论2014-01-25 17:40
用python2.7的解释器配合python3接近的语法写是现在主流方式,
可以用six这个库来做2和3的兼容。
python是开源语言, 设计思路在不断完善, 发展到一半, 发现有些之前架构不合理的地方
比如unicode和类的元数据
这样就有2种解决方案, 一种是类似微软一直主张的向前兼容, 一种是丢开历史包袱, 重新设计。
然后python选择了后者, 这个python的设计思想有关系, 缝缝补补, 向前兼容绝对不是优雅的设计, 也和社区思想抵触, 参考the zen of python
这样大改, 一定会导致灾难性的迁移问题, guido是个很搞的人, 。。ps.如果了解他的都会知道他很喜欢开玩笑, python名字的由来也是他喜欢看python monty马戏团的恶搞。。
所以社区里一直称python3是 py3k,也就是python 3000,
意思是下个版本是py3, 然后py4, py5, py6 ... 直到py3000时, py3k就能代替py2实装了。。
事实上现在大部分库都已迁移到了py3k, 除了twisted, gevent之类的,
也就是你不用这些库的话, 完全可以用py3k写,
2.7以后也不会增加新的功能, 只会修复bug, 和语法越来越接近py3k
现在比较致命的问题其实是很多操作系统并没有自带py3k, 前段时间看消息, 貌似fedora要预装py3k。
只要大部分操作系统, 预装py3k, py2应该就会被丢弃了
网友评论2014-01-25 17:42
自己做着玩用到的大部分还是2.7。。因为很多科学计算库不能很好地兼容3.0。。最近看老外吵得也很厉害。。
网友评论2014-01-25 17:43
你说的GAE?
网友评论2014-01-25 17:44
python3其实也没啥 print加括号 强制unicode都可以理解 问题库不兼容这受不了了
网友评论2014-01-25 17:53
Reply Post by 默默语 (2014-01-25 17:44):
python3其实也没啥 print加括号 强制unicode都可以理解 问题库不兼容这受不了了
前两点几乎是劝说别人迁移到py3k最好的理由。。
print是个内置函数, 所有的内置函数使用起来都是func()这种形式,
只有print因为参考了之前一个语言使用了print xxx这种形式。
这是个相当不一致的问题。。只有语法关键字才会使用空格分开参数, 比如
if xxx:
while xxx:
print是个内置函数却有着关键字的外观, 强迫症患者会死的。。
保持一致的外观, 也方便解释器的编写。
unicode我就不说了, 所有高级脚本语言, 默认字符串默认不是utf-8的, 都是土鳖, 没有国际视野的。
作为中文用户, 一定更深刻的体验到这个吧。。
最后一个问题, 很多库用了一些py2的技巧吧, 能迁移的绝对迁移了, 不能的, 那说明确实有困难。
Copyright 2012年2月8日 苏ICP备12030052号-3