美文网首页
代码风格

代码风格

作者: 原点_da4e | 来源:发表于2018-12-18 11:43 被阅读0次

缩进

每层缩进使用4个空格。

续行要么与圆括号、中括号、花括号这样的被包裹元素保持垂直对齐,要么放在 Python 的隐线(注:应该是相对于def的内部块)内部,或者使用悬挂缩进。使用悬挂缩进的注意事项:第一行不能有参数,用进一步的缩进来把其他行区分开。

当 if 语句的条件部分足够长,需要将它写入到多个行,值得注意的是两个连在一起的关键字(i.e. if),添加一个空格,给后续的多行条件添加一个左括号形成自然地4空格缩进。如果和嵌套在 if 语句内的缩进代码块产生了视觉冲突,也应该被自然缩进4个空格。这份增强建议书对于怎样(或是否)把条件行和 if 语句的缩进块在视觉上区分开来是没有明确规定的。

在多行结构中的右圆括号、右中括号、右大括号应该放在最后一行的第一个非空白字符的正下方,

或者放在多行结构的起始行的第一个字符正下方,

制表符还是空格

空格是首选的缩进方法。

制表符(Tab)应该被用在那些以前就使用了制表符缩进的地方。

Python 3 不允许混合使用制表符和空格来缩进代码。

混合使用制表符和空格缩进的 Python 2 代码应该改为只使用空格。

当使用-t选项来调用 Python 2 的命令行解释器的时候,会对混合使用制表符和空格的代码发出警告。当使用-tt选项的时候,这些警告会变成错误。这些选项是强烈推荐的!

买行最大长度

限制每行的最大长度为79个字符。

对于那些约束很少的文本结构(文档字符串或注释)的长块,应该限制每行长度为72个字符。

限制编辑窗口的宽度使并排打开两个窗口成为可能,使用通过代码审查工具时,也能很好的通过相邻列展现不同代码版本。

一些工具的默认换行设置打乱了代码的可视结构,使其更难理解。限制编辑器窗口宽为80来避免自动换行,即使有些编辑工具在换行的时候会在最后一列放一个标识符。一些基于 Web 的工具可能根本就不提供动态换行。

一些团队更倾向于长的代码行。对于达成了一致意见来统一代码的团队而言,把行提升到80~100的长度是可接受的(实际最大长度为99个字符),注释和文档字符串的长度还是建议在72个字符内。

Python 标准库是非常专业的,限制最大代码长度为79个字符(注释和文档字符串最大长度为72个字符)。

首选的换行方式是在括号(小中大)内隐式换行(非续行符\)。长行应该在括号表达式的包裹下换行。这比反斜杠作为续行符更好。

反斜杠有时仍然适用。例如,多个很长的with语句不能使用隐式续行,因此反斜杠是可接受的。

另一种使用反斜杠续行的案例是assert语句。

确保续行的缩进是恰到好处的。遇到二元操作符,首选的断行位置是操作符的后面而不是前面。
空行
顶级函数和类定义上下使用两个空行分隔。

类内的方法定义使用一个空行分隔。

可以使用额外的空行(有节制的)来分隔相关联的函数组。在一系列相关联的单行代码中空行可以省略(e.g. 一组虚拟的实现)。

在函数中使用空白行(有节制的)来表明逻辑部分。

Python 接受使用换页符(i.e. Ctrl+L)作为空格;许多工具都把Ctrl+L作为分页符,因此你可以用它们把你的文件中相似的章节分页。注意,一些编辑器和基于 Web 的代码查看工具可能不把Ctrl+L看做分页符,而是在这个位置放一个其它的符号。

源文件编码

在核心 Python 发布版中的代码应该总是使用UTF-8编码(或者在 Python 2 中使用ASCII)。

使用ASCII(Python 2)或UTF-8(Python 3)的文件不需要有编码声明(注:它们是默认的)。

在标准库中,非缺省的编码应该仅仅用于测试目的,或者注释或文档字符串中的作者名包含非ASCII码字符;否则,优先使用\x、\u、\U或者\N来转义字符串中的非ASCII数据。

对于 Python 3.0 和之后的版本,以下是有关标准库的政策(见PEP 3131):所有 Python 标准库中的标识符必须使用只含ASCII的标识,并且应该使用英语单词只要可行(在多数情况下,缩略语和技术术语哪个不是英语)。此外,字符串和注释也必须是ASCII。仅有的例外是:(a)测试用例测试非ASCII特性时,(b)作者名。作者的名字不是基于拉丁字母的必须提供他们名字的拉丁字母音译。

面向全球用户的开源项目,鼓励采取相似的政策。

导入包

import不同的模块应该独立一行

注释

块注释

块注释通常用来说明跟随在其后的代码,应该与那些代码有相同的缩进层次。块注释每一行以#起头,并且#后要跟一个空格(除非是注释内的缩进文本)。

行内注释

有节制的使用行内注释。

一个行内注释与语句在同一行。行内注释应该至少与语句相隔两个空格。以#打头,#后接一个空格。

公共和内部接口

保证所有公有接口的向后兼容性。用户能清晰的区分公有和内部接口是重要的。

文档化的接口考虑公有,除非文档明确的说明它们是暂时的,或者内部接口不保证其的向后兼容性。所有的非文档化的应该被假设为非公开的。

为了更好的支持内省,模块应该用all属性来明确规定公有 API 的名字。设置all为空list表明模块没有公有 API。

甚至与all设置相当,内部接口(包、模块、类、函数、属性或者其它的名字)应该有一个前导的下划线前缀。

被认为是内部的接口,其包含的任何名称空间(包、模块或类)也被认为是内部的。

导入的名称应始终视作一个实现细节。其它模块不能依赖间接访问这些导入的名字,除非它们是包含模块的 API 明确记载的一部分,例如os.path或一个包的init模块暴露了来自子模块的功能。

相关文章

  • 代码风格

    建议学习时长: 30分钟学习方式:了解 学习目标 知道什么是代码风格 了解流行的代码风格用哪些 详细介绍 不同的语...

  • 代码风格

    代码风格 代码风格 必须 严格遵循 PSR-2 规范。 PHP编码规范(中文版)

  • 代码风格

    使用 4 个空格来缩进 永远不要混用空格和制表符 在函数之间空一行 在类之间空两行 字典,列表,元组以及参数列表中...

  • 代码风格

  • 代码风格

    缩进 每层缩进使用4个空格。 续行要么与圆括号、中括号、花括号这样的被包裹元素保持垂直对齐,要么放在 Python...

  • 代码风格

    1.尽量避免使用数组赋值传值 2.代码中避免出现常量,如果有常量,定义const文件 3.每个class不超过10...

  • 代码风格

    function say() {console.log('hello world')} // TypeError:...

  • 代码风格

    介绍 代码风格一切以可读性为前提,并尽量保持精简整洁,且让代码具有自说明(语义化)能力。为了代码风格的统一,代码审...

  • 代码风格

    参考:vue 风格指南[https://v2.cn.vuejs.org/v2/style-guide/]javas...

  • 代码风格-restful风格

    参考 :http://www.ruanyifeng.com/blog/2014/05/restful_api.ht...

网友评论

      本文标题:代码风格

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