真心觉得 python3 比 python2 好啊 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
pc10201
V2EX    Python

真心觉得 python3 比 python2 好啊

  •  
  •   pc10201 2016-03-11 11:03:14 +08:00 9589 次点击
    这是一个创建于 3502 天前的主题,其中的信息可能已经有所发展或是发生改变。
    每一个 pythoner 折腾过 python 2 的中文编码,虽然都已经习惯了~

    现在日常的使用,除了 scrapy 还没有完全兼容 python 3 外,其他的主流库基本都支持 python3 了~
    37 条回复    2017-07-04 10:07:34 +08:00
    strahe
        1
    strahe  
       2016-03-11 11:06:10 +08:00
    反正我是一直追 3 的
    tairan2006
        2
    tairan2006  
       2016-03-11 11:24:43 +08:00
    更换的性价比太低。。
    zhouquanbest
        3
    zhouquanbest  
       2016-03-11 11:26:12 +08:00
    然并卵
    只能自己的 project 偷着乐
        4
    virusdefender  
       2016-03-11 11:40:41 +08:00
    最近写爬虫用了下,确实没再遇到编码问题。但是以前的 web 项目仍然在继续使用 2 。

    发现 PyCharm 对 3 的支持不是很好,很多自动提示都没了,而且还有 bug 。
    glasslion
        5
    glasslion  
       2016-03-11 11:46:27 +08:00
    scrapy 已经支持 python3 了
    janxin
        6
    janxin  
       2016-03-11 11:58:17 +08:00
    现在其实对个人而言编码问题并没有这么严重(不做爬虫),实际上更换 Py3 之后性能没有任何提升反而有情况下性能下降是最大的升级阻碍,这个对线上系统而言完全不划算的生意。

    最后唠叨一下 fabric 啥时候开发完新版啊....
    initialdp
        7
    initialdp  
       2016-03-11 12:01:52 +08:00
    阻挡 3 的是兼容性,是企业已有项目的迁移成本。
    jy02201949
        8
    jy02201949  
       2016-03-11 12:01:58 +08:00
    毕竟 3 是为了解决 2 臃肿、编码等很多问题才诞生的
    raptor
        9
    raptor  
       2016-03-11 12:02:05 +08:00
    说一个 py3 的编码问题吧: logging
    默认输出到 console 的 logging 是采用系统编码,而直接写入 str(即 unicode)会出错,转成 utf-8 则变成 bytes ,在 console 上显示永远是不对的,只能用 FileHandler ,因为这个可以设置 encoding ,才能得到正确的结果。
    whisperzzzz
        10
    whisperzzzz  
       2016-03-11 12:02:24 +08:00
    (内心)旧的坑踩的差不多了……谁知道新的坑会有多少……
    (说出来的话) Python 2 真是好 TM 蠢啊(
    raptor
        11
    raptor  
       2016-03-11 12:02:59 +08:00
    还有一个编码相关的问题就是跟加密相关的函数,全都不支持 str(unicode),必须手工转成 bytes 才能用。
    MrEggNoodle
        12
    MrEggNoodle  
       2016-03-11 12:12:09 +08:00
    3 取代 2 是时间的问题,好像 py 团队对 2.7 的支持会持续到 19 年,然后全部转向 3 的了。只是现在企业就要看自己转变的性价比有多高, 3 会越来越好, 2 已经没有新特性引入了。其实 2.7 已经兼容了不少 3 的特性的了。
    congeec
        13
    congeec  
       2016-03-11 12:21:35 +08:00
    @janxin 性能? Python 3 最大的性能损失在字符串处理吧。另外好多 Python 3 效率更高的模块模块没有移植到 Python 2 ,比如 os.scandir 。 OrderedDict 在 3 里也用 C 重写了
    wizardoz
        14
    wizardoz  
       2016-03-11 13:09:34 +08:00
    单从语言的角度来讲当然是 Python3 比 Python2 好。但是有很多很有用的库尚不支持 Python3 ,所以很多时候只能选择 Python2
    neoblackcap
        15
    neoblackcap  
       2016-03-11 13:30:18 +08:00
    @raptor Python3 里面的 str 函数相当于 Python2 里面的 unicode ,加密函数之前都是用 str 也就是 Python3 里面的 bytes,因此需要类型转换也是很符合常理的。
    yy77
        16
    yy77  
       2016-03-11 13:59:04 +08:00
    关键是 pypy 很长时间都支持 python2 ,现在虽然有了 python3 的支持,但是对比 python2 的版本依然很不成熟。多少计算密集的应用和库能够放弃 pypy 啊。
    xchange
        17
    xchange  
       2016-03-11 14:02:08 +08:00   2
    现在公司所有项目都在用 Python 3.5 ,很开心
    ericls
        18
    ericls  
       2016-03-11 14:04:21 08:00 via iPhone
    用了一年多 3 了 没遇见过任何问题 不知道那些说 3 很多不兼容的问题哪里来的
    ericls
        19
    ericls  
       2016-03-11 14:07:40 +08:00 via iPhone
    @wizardoz 这个说法不存在
    jugelizi
        20
    jugelizi  
       2016-03-11 14:09:19 +08:00
    新项目当然可以去用
    已有的去迁移成本未未知啊
    likuku
        21
    likuku  
       2016-03-11 14:13:35 +08:00
    遇到老系统只有 py3.1 ,结果好几种 mysql 模块支持的最低版本 3 都比 3.1 高,
    最后为了及时解决问题,还是直接用回 py2.7 。

    某些旧系统发行版最高也就 py3.1 了。
    fy
        22
    fy  
       2016-03-11 15:43:25 +08:00
    @virusdefender 并没有发现 pycharm 失灵…… pycharm 一直在跟进最新版本啊。
    python3.3 以后基本成熟,用的很开心
    virusdefender
        23
    virusdefender  
       2016-03-11 15:47:43 +08:00
    @fy 不是失灵,而是没有 Python2 智能了,不知道为什么
    mathgl
        24
    mathgl  
       2016-03-11 17:52:47 +08:00
    我在等 pypy
    ahxxm
        25
    ahxxm  
       2016-03-11 22:38:29 +08:00
    @virusdefender maybe you need to choose python3 interpretor? (shurufa huai le .. )
    virusdefender
        26
    virusdefender  
       2016-03-11 22:42:28 +08:00 via Android
    @ahxxm 我当然选了
    em3rge
        27
    em3rge  
       2016-03-11 22:43:26 +08:00
    @virusdefender then what kind of smart do you want?
    Pastsong
        28
    Pastsong  
       2016-03-11 22:44:37 +08:00
    我们都这么觉得
    em3rge
        29
    em3rge  
       2016-03-11 22:47:59 +08:00
    @virusdefender 我一直就只用 refactor 和自动补全,没有遇到过什么问题,感觉完全满足需求。。就写 2/3 兼容代码时候没有 type annotation 有时候会没提示
    virusdefender
        30
    virusdefender  
       2016-03-11 22:51:05 +08:00 via Android
    @em3rge 我写的 django
    em3rge
        31
    em3rge  
       2016-03-11 22:54:42 +08:00
    @virusdefender 试试用 def func(param: int) -> bool 这个语法
    zaishanfeng
        32
    zaishanfeng  
       2016-03-11 23:01:35 +08:00 via Android
    然而实际项目很少有人用 3 除了编码问题 真的没有必要换 再说了连个编码都搞不定 怎么艹
    Feiox
        33
    Feiox  
       2016-03-12 10:05:32 +08:00
    用 2 的好处,唉, pypy 啥时候支持 3.4+ 啊。。。
    gamexg
        34
    gamexg  
       2016-03-12 12:40:11 +08:00
    迁移麻烦,虽然 py3 过了测试,但是还是不敢迁移,测试不能覆盖所有情况。
    raptor
        35
    raptor  
       2016-03-12 23:41:28 +08:00
    @likuku 旧系统的确坑,换成 py2 有时也会被坑,比如某些系统里的 py2 居然还是 2.4 …
    不过不是太旧,能跑 docker 的系统还是可以有选择的。
    fbwfbi
        36
    fbwfbi  
       2016-03-18 02:13:24 +08:00
    一直用 python3 写了一年多的项目,之前 py2 的那些不兼容的地方反而忘了
    leafonsword
        37
    leafonsword  
       2017-07-04 10:07:34 +08:00
    django 官方建议用 Python 3,checkio 只支持 Python 3,是时候换到 Python 3 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2575 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:58 PVG 12:58 LAX 21:58 JFK 00:58
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86