美文网首页生活不易 我用python
effective python -- 遵循PEP8规范

effective python -- 遵循PEP8规范

作者: buyu007 | 来源:发表于2018-03-22 12:27 被阅读19次

    以前翻译过<effective python>的几章, 后来发现已经有人翻译过了, 就停了
    想想还是放上来吧


    第二条: 遵循PEP8规范

    Python Enhancement Proposal #8, 简称PEP8, 是Python的代码规范. 只要符合语法, 你可以用任何你喜欢的格式来个写代码. 但是符合代码规范的代码, 会更受欢迎,更容易让人读懂. 甚至这些代码只是你一个人用, 符合规范也会让你以后修改重构代码的时候变得容易一点
    PEP 8 会让你的代码变得清晰简单. 它还在随着Python的演化持续更新. 通读一下整个在线文档是非常有价值的事情 http://www.python.org/dev/peps/pep-0008/
    下面几点是你必须要遵循的:

    空白(Whitespace)

    Python中, 空白是语法规范. Python程序员特别在意代码中的空白, 从而使代码更清晰明了

    • 缩进用空格(space), 而不是tab
    • 使用4个空格作为每一层的语法缩进
    • 每一行不得超过79个字符

    译者: 这一条还是很有必要的, 特别是多团队合作开发, 方便使用不同尺寸的屏幕来阅读代码

    • 一行写不下, 需要第二行的时候, 在原有语法缩进的基础上, 在增加4个空格(4 space)
    • 在文件中, function和class 需空开2行
    • 在class中, method需空开1行
    • 在列表索引, 方法调用, 关键字前后, 不要有空格
    • 参数赋值前后有 一个且只有一个空格

    命名

    PEP 8 建议要统一命名规范. 这样使得阅读代码时能清晰的区分类型

    • 方法(function), 变量(variables), 属性(attributes)应该是小写加下划线, 例如: lowercase_underscore
    • 私有属性应该以__开头, 并小写, 例如: __double_leading_underscore
    • 类(class)和异常(exception) 应该首字母大写, 例如 CapitalizedWord
    • 模块内的常亮应该是大写加下划线, 例如 *ALL_CAPS
    • 实例方法使用self作为第一个参数名
    • 类方法使用cls作为第一个参数名

    表达式和声明

    Python之禅(Zen of Python)中说过:"应该 有且最好只有一种方式去实现它". PEP 8 尝试使用这个理念来指导表达式和声明

    • 使用内联否定(if a is not b)来代替否定表达式(if not a is b)
    • 不要用于len来检查列表或字符串的空值(if len(somelist) == 0), 使用 if not somelist. 同时假定,空值隐式的为False
    • 接上, 非空的字符串或者列表字典隐式为True
    • 避免使用单行的if, for, while, except 等复合声明. 切分为多行, 更清晰易读
    • 总是将import置于文件头部
    • 总是使用绝对引用, 而不是相对路径引用. 例如, 引用 foo模块的bar, 你应该from foo import bar, 而不是import foo
    • 如果必须相对引用, 使用明确的语法from . import foo
    • import之间有必须遵循如下排序: 标准类库模块, 第三方模块, 你自己的模块. 每个import章节应该是alpha排序(译者: 也就是按照a,b,c,d排序)

    Pylint (http://www.pylint.org/) 是比较热门的Python静态代码检查工具. Pylint提供了PEP 8 的代码规范检查,以及一些常见Python错误的检查

    要记住的事

    • 编码时遵循PEP 8规范
    • 共享的代码规范, 让社区合作变得更简单
    • 良好的代码规范, 有利于你以后重构代码

    相关文章

      网友评论

        本文标题:effective python -- 遵循PEP8规范

        本文链接:https://www.haomeiwen.com/subject/npcaqftx.html