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 · 6332 次点击
    这是一个创建于 3242 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是什么啊~
    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   ·   实用小工具   ·   1070 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:28 · PVG 03:28 · LAX 12:28 · JFK 15:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.