PEP8 给我弄糊涂了,究竟怎么写代码才是正确的姿势? - 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
ecloud
V2EX    Python

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

  •  1
     
  •   ecloud
    yecloud 2016-08-02 09:05:13 +08:00 17672 次点击
    这是一个创建于 3359 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 。
    RealLiuSha
        21
    RealLiuSha  
       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     Solana     1065 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:03 PVG 07:03 LAX 16:03 JFK 19:03
    Do have faith in what you're doing.
    ubao 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