推荐学习书目
› 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 · 18639 views
    This topic created in 3747 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
    bytenoob
    Aug 2, 2016 via Android
    1
    不是有快捷键自动格式化么,不过我用 yapf
    ecloud
    ecloud
    OP
    Aug 2, 2016
    2
    好吧,弄明白了,不用\断行它就没毛病了
    不过又有新问题,下一行,无论我缩进还是不缩进,都提示
    continuation line under-indented for visul indent
    ecloud
    ecloud
    OP
    Aug 2, 2016
    3
    @Yc1992 谢谢提醒,才想到有这功能,哈哈,头一次用 PEP8 ,搞定了, Ctrl+Alt+R
    kkzxak47
    kkzxak47
    Aug 2, 2016 via Android❤️1
    5
    其实代码规范这件事是为了方便协作,它不应该是手铐,如果有些地方你觉得难受,就去把它改了。
    比如我们现在就把列宽限制改到了 120 。
    shipinyun2016
    shipinyun2016
    Aug 2, 2016
    6
    不错
    ts25504
    ts25504
    Aug 2, 2016
    7
    PEP8 默认一行最多 79 个字符,刚好 80 个也算超过了
    jjx
    jjx
    Aug 2, 2016 via Android
    8
    80 字符我都是忽略的,这是旧时代的产物,现在分辨率这么高,实在是没有必要了
    likuku
    likuku
    Aug 2, 2016
    9
    Python 风格规范 — Google 开源项目风格指南 :
    http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

    [行长度

    Tip

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

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

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

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

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