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
ecloud
V2EX  ›  Python

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

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

    [行长度

    Tip

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

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

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

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

    不过解决了之后还满爽的
    janxin
        24
    janxin  
       2016-08-02 19:22:11 +08:00
    除了长度其他的都还是 pep-8 ,当然我都是 yapf 了事
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3126 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:42 · PVG 20:42 · LAX 04:42 · JFK 07:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.