Python 编程最大的坑是什么? - 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
ca1123
V2EX    Python

Python 编程最大的坑是什么?

  •  
  •   ca1123 2015-12-16 11:27:21 +08:00 6849 次点击
    这是一个创建于 3594 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是什么啊~
    44 条回复    2015-12-17 21:46:50 +08:00
    lanzhiheng
        1
    lanzhiheng  
       2015-12-16 11:38:04 +08:00
    2.7 > 3.4 0.0
    mimzy
        2
    mimzy  
       2015-12-16 11:38:37 +08:00
    czheo
        3
    czheo  
       2015-12-16 11:41:44 +08:00
    GIL ?
    est
        4
    est  
       2015-12-16 11:47:22 +08:00
    最大的坑就是 LZ 这种挖直坑的。。。
    hahastudio
        5
    hahastudio  
       2015-12-16 11:49:18 +08:00
    icedx
        6
    icedx  
       2015-12-16 11:57:30 +08:00
    最大的坑就是楼主认为它有坑
    felinx
        7
    felinx  
       2015-12-16 11:59:16 +08:00
    楼主挖了一个好大一个 Python 的坑
    Akagi201
        8
    Akagi201  
       2015-12-16 12:35:32 +08:00
    GIL, 性能, 2/3 分裂, 2 的编码问题, 2 没有原生支持并发.
    deadEgg
        9
    deadEgg  
       2015-12-16 13:34:26 +08:00
    python 2 编码
    就是个笑话
    chai2010
        10
    chai2010  
       2015-12-16 13:50:35 +08:00
    tab 和空白
    MrEggNoodle
        11
    MrEggNoodle  
       2015-12-16 13:53:09 +08:00
    我个人觉得还是 2 和 3 的分裂。
    shuax
        12
    shuax  
       2015-12-16 14:02:46 +08:00
    2 和 3 的分裂导致了很多人不敢学,这就是最大的坑吧,还不如直接宣布不再支持 2 。
    initialdp
        13
    initialdp  
       2015-12-16 14:07:12 +08:00
    除了 GIL ,没感觉 Python 有什么坑啊。
    fregen
        14
    fregen  
       2015-12-16 14:42:32 +08:00 via Android
    从此看其它的语法都不顺眼了
    imxiaozhi
        15
    imxiaozhi  
       2015-12-16 14:46:47 +08:00
    @chai2010 tab 和空白怎么了,一直在网上看到别人说这个,但是从没碰到过
    jixiangqd
        16
    jixiangqd  
       2015-12-16 14:53:20 +08:00
    python2 的编码确实是坑。。。无数次被坑
    chai2010
        17
    chai2010  
       2015-12-16 14:54:25 +08:00
    @imxiaozhi 非常不利于 Ctrl+C 和 Ctrl+V, 段落变化导致语义变化(语法可能还是对的).
    和 Makefile 的 \t 坑有得一拼.
    maguowei
        18
    maguowei  
       2015-12-16 14:55:55 +08:00
    @fregen +1
    clino
        19
    clino  
       2015-12-16 15:00:15 +08:00
    我觉得 2 3 分裂是最不好的
    当初要是慢慢演进 温水煮用户就好了
    zky001
        20
    zky001  
       2015-12-16 16:30:24 +08:00
    2 的编码, 3 的分裂
    Mark24
        21
    Mark24  
       2015-12-16 16:38:16 +08:00
    2 的编码,这个绝对绝对绝对!
    3 的分裂(其实 3 好用)
    缩进, tab ……其实把缩进调为可见,这个问题一般不是问题

    CPython 的多线程
    latyas
        22
    latyas  
       2015-12-16 16:59:28 +08:00
    在 py3.5 中 coroutinefunction 在经过 setattr 给一个 object 后会变成 generator object,导致 await 语句没法使用,然而这个 bug 只在 MacOS 中出现, linux 中没这个问题。

    本来想给官方提个 issue ,但是不知道怎么提 -> 这句话是我想说的最大的坑
    sun2920989
        23
    sun2920989  
       2015-12-16 17:07:26 +08:00   4
    据说看 python 书的必备工具是格尺......
    Wangxf
        24
    Wangxf  
       2015-12-16 18:06:31 +08:00
    我玩过小一阵子,还是不太习惯没有大括号的编程语言
    eamars
        25
    eamars  
       2015-12-16 18:24:43 +08:00
    两个编辑器要是使用不同的缩进格式,比如 2 , 4 , 8 , tab ,还是空格这种问题最操蛋了
    taozhijiangscu
        26
    taozhijiangscu  
       2015-12-16 18:31:28 +08:00
    恩,多线程就是个坑。。。。
    RTNelo
        27
    RTNelo  
       2015-12-16 19:49:14 +08:00
    @sun2920989 游标卡尺
    knightdf
        28
    knightdf  
       2015-12-16 20:00:22 +08:00
    2 , 3 的分裂,现在项目全是用的 2 ,但是我又想用下 3
    ca1123
        29
    ca1123  
    OP
       2015-12-16 21:22:28 +08:00
    大家讨论的好热烈
    wowpanda
        30
    wowpanda  
       2015-12-16 22:55:17 +08:00 via Android
    有人觉得 python 的官方文档做的很捉急么。最近看 socket 相关的,好多都不说清楚,说话说一截,真是浪费我不少时间。
    janxin
        31
    janxin  
       2015-12-16 23:18:58 +08:00
    最大的坑是那些复制代码的手足无措了
    kokutou
        32
    kokutou  
       2015-12-16 23:24:15 +08:00
    python2 的编码+1 。。。被坑过。。。
    yh7gdiaYW
        33
    yh7gdiaYW  
       2015-12-16 23:54:35 +08:00
    全局变量
    a = 1
    def add():
    a+=1
    然后就蹦出来一个 Error
    ms2008
        34
    ms2008  
       2015-12-17 00:25:33 +08:00
    说编码的,都是有故事的人
    Bealing
        35
    Bealing  
       2015-12-17 00:41:30 +08:00
    不管楼上说的是什么方面的坑,总而言之,一句话: Python 本身就是一个坑
    zyc841584303
        36
    zyc841584303  
       2015-12-17 00:41:31 +08:00
    2333333
    mckelvin
        37
    mckelvin  
       2015-12-17 09:07:05 +08:00 via iPhone
    人 + 1. 比如有 id, 有用字符串 "1", 有的用整形 1.
    MarioLuisGarcia
        38
    MarioLuisGarcia  
       2015-12-17 09:33:37 +08:00
    pynix
        39
    pynix  
       2015-12-17 09:39:07 +08:00
    2>3
    leavic
        40
    leavic  
       2015-12-17 09:54:22 +08:00
    string 和 unicode 问题,当然在 3 里总算统一了, 3 是个好语言,就是大家都还没那么快的转移到上面去。
    Felldeadbird
        41
    Felldeadbird  
       2015-12-17 10:24:38 +08:00
    最大坑就是 2 和 3 的兼容了。还有就是网上的教程 一部分 3 一部分 2. 初学者容易 被误导。 别以为直接学 2 不会被误导啊。一样会。哈哈
    introom
        42
    introom  
       2015-12-17 10:55:45 +08:00 via Android
    @wowpanda 文档是很差,虽然一大帮人负责文档,但文档格式规范从根本上导致文档可读性很差。

    然而话虽这么说,但是 python 的东西也没有必要过多依赖文档,直接看源代码好了,大部分源代码都很直接,就算不直接也或多或少有注释。
    jamiesun
        43
    jamiesun  
       2015-12-17 18:23:10 +08:00
    用 python 这么多年,让我几乎忘记多线程编程,基本不用多线程。 GIL 不是坑, GIL 让 python 产生了各种 Python 单线程性能爆的方案, gevent , twisted , tornado , pypy 等。单线程让编程更简单,多进程轻松整合。

    字符集这个倒真的有那么点麻烦,我倒是没什么,就是带徒弟学 python ,徒弟动不动拿这个烦我。
    billlee
        44
    billlee  
       2015-12-17 21:46:50 +08:00
    @wowpanda socket 的 API 就是直接从 BSD socket 拿过来的,所以没写多详细吧,其它 python 风格的库文档质量还是挺高的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2414 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 15:42 PVG 23:42 LAX 08:42 JFK 11:42
    Do have faith in what you're doing.
    ubao msn 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