推荐学习书目
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
ecloud
V2EX  ›  Python

PEP8 给我弄糊涂了,究竟怎么写代码才是正确的姿势?

  •  1
     
  •   ecloud ·
    yecloud · Aug 2, 2016 · 18172 views
    This topic created in 3588 days ago, the information mentioned may be changed or developed.
    Sublime 里装了 Anaconda ,内建了 PEP8
    发个 HTTP 的 POST ,有 url , headers, parms
    其实也不是很长但是刚好超过了 80 列的宽度,主要是前面的缩进占了不少
    然后 PEP8 就提示我一行太长了
    我给它分行,又提示我 the backslash is redundant between brackets
    WQNMLGBD ,究竟怎么写才是正确的姿势?
    24 replies    2016-08-02 19:22:11 +08:00
    bytenoob
        1
    bytenoob  
       Aug 2, 2016 via Android
    不是有快捷键自动格式化么,不过我用 yapf
    ecloud
        2
    ecloud  
    OP
       Aug 2, 2016
    好吧,弄明白了,不用\断行它就没毛病了
    不过又有新问题,下一行,无论我缩进还是不缩进,都提示
    continuation line under-indented for visul indent
    ecloud
        3
    ecloud  
    OP
       Aug 2, 2016
    @Yc1992 谢谢提醒,才想到有这功能,哈哈,头一次用 PEP8 ,搞定了, Ctrl+Alt+R
    kkzxak47
        5
    kkzxak47  
       Aug 2, 2016 via Android   ❤️ 1
    其实代码规范这件事是为了方便协作,它不应该是手铐,如果有些地方你觉得难受,就去把它改了。
    比如我们现在就把列宽限制改到了 120 。
    shipinyun2016
        6
    shipinyun2016  
       Aug 2, 2016
    不错
    ts25504
        7
    ts25504  
       Aug 2, 2016
    PEP8 默认一行最多 79 个字符,刚好 80 个也算超过了
    jjx
        8
    jjx  
       Aug 2, 2016 via Android
    80 字符我都是忽略的,这是旧时代的产物,现在分辨率这么高,实在是没有必要了
    likuku
        9
    likuku  
       Aug 2, 2016
    Python 风格规范 — Google 开源项目风格指南 :
    http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

    [行长度

    Tip

    每行不超过 80 个字符
    例外:

    长的导入模块语句
    注释里的 URL
    不要使用反斜杠连接行.]
    ayaseangle
        10
    ayaseangle  
       Aug 2, 2016
    成大事者不纠结, ruby 才是你的归宿。。
    ecloud
        11
    ecloud  
    OP
       Aug 2, 2016
    @kkzxak47 我以前用 VIM 的习惯是窗口都是 160 列,到头了自己折行。不过现在这个脚本要部署在服务器上,考虑远程维护的话可能还是按照 80 列折行的好
    9hills
        12
    9hills  
       Aug 2, 2016
    80 建议改成 120
    msg7086
        13
    msg7086  
       Aug 2, 2016
    80 是字符模式界面的限制,现在没人用字符界面了。只要长度合适就 OK 了。
    mgna17
        14
    mgna17  
       Aug 2, 2016
    代码大致遵循一下 PEP8 ,自己看着舒服,队友看着舒服,这样就差不多可以了,不必太强求
    xiahei
        15
    xiahei  
       Aug 2, 2016
    超了用括号:
    ("asedfasdf")
    ("asdfasdfasd")
    尽量少用 /不用:
    "adfasdfasd\
    afdasdfasdf"

    很强的一篇博客。
    http://ajucs.com/2015/10/09/The-Best-of-the-Best-Practices-Guide-for-Python.html
    imn1
        16
    imn1  
       Aug 2, 2016
    80 是为了方便在纯命令行界面修改的, GUI 界面我选择 ignore 这一条
    mfinal
        17
    mfinal  
       Aug 2, 2016
    我觉得这时候,可以参看 Google Style 的 URL 不分行策略,强行把一个变量分开两行写也不合适呀。
    guyskk
        18
    guyskk  
       Aug 2, 2016 via Android
    用 yapf 或者 auto-pep8 自动格式化一下就好了,代码风格主要是为了方便其他人阅读和维护,才有个统一的标准。如果只考虑自己,那当然可以爱怎么写就怎么写,想写多长就多长。当别人要给你 review 代码,或者给你改 bug ,就该多考虑别人的感受。
    sqbing
        19
    sqbing  
       Aug 2, 2016
    r#8 @jjx 不只是因为分辨率低才用 80 字符限制,也是为了方便阅读代码。
    Ahri
        20
    Ahri  
       Aug 2, 2016
    不要死抠 PEP-8 ,现在 120 貌似很流行。 Linter 都可以改配置为 120 。
    RealLiuSha
        21
    RealLiuSha  
       Aug 2, 2016
    阅读方便 队友方便就行, 干嘛非要 PEP8
    xiaolee59
        22
    xiaolee59  
       Aug 2, 2016
    the backslash is redundant between brackets

    用\分行的时候,假如是在() {}[]之类的括号之内,就没必要了,解释器能识别的了。
    sheep3
        23
    sheep3  
       Aug 2, 2016
    = = 用 Pycharm 的时候很烦各种 PEP8 不符的下划线提示

    不过解决了之后还满爽的
    janxin
        24
    janxin  
       Aug 2, 2016
    除了长度其他的都还是 pep-8 ,当然我都是 yapf 了事
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2772 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 162ms · UTC 13:31 · PVG 21:31 · LAX 06:31 · JFK 09:31
    ♥ Do have faith in what you're doing.