Python01-01_Python3代码样式指导手册 .pdf

Python01-01_Python3代码样式指导手册 .pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Python01-01_Python3代码样式指导⼿册

Python3代码样式指导⼿册

代码布局

缩进

每个缩进级别采⽤4个空格

连续⾏所包装的元素应该要么使⽤Python隐式排列,即垂直对齐于圆括号,⽅括号花括号

或者采⽤悬挂缩进,采⽤悬挂缩进需考虑第⼀⾏不应该包括参数,并且在续⾏中需要再缩进⼀级以清楚显⽰

对于续⾏来说,4空格规则可以不遵守

如果if语句太长,需要⽤到多⾏书写

2个字符(例如if)加上⼀个空格和⼀个左括号刚好是4空格缩进,但这对多⾏条件语句的续⾏是没⽤的因为这会和if语句中嵌套的其他

的缩进语句产⽣视觉上的冲突

这份PEP中并没有做出明确的说明应该怎样来区分条件语句和if语句中所嵌套的语句

多⾏结束右圆/⽅/花括号可以单独⼀⾏书写和上⼀⾏的缩进对齐

也可以和多⾏开始的第⼀个字符对齐

Tab还是空格?

推荐使⽤空格来进⾏缩进

tab应该只有在现有代码已经使⽤tab进⾏缩进的情况下使⽤以便和现有代码保持⼀致

python3不允许tab和空格共同使⽤

每⾏最⼤长度

将所有⾏都限制在79个长度以内

对于连续⼤段的⽂字(⽐如⽂档字符串(docstring)或注释),其结构上的限制更少这些⾏应该被限制在72个字符长度之内

调整窗⼝宽度能让多个⽂件同时打开在屏幕上显⽰,在使⽤代码评审(codereview)⼯具时在两个相邻窗⼝显⽰两个版本的代码会更

很多⼯具默认⾃动换⾏会破坏代码结构,使代码变得难以理解

在窗⼝⼤⼩为80个字符的编辑器中,在换⾏时,编辑器可能会在最后⼀列放置⼀个标记,为避免⾃动换⾏也需要限制酶⾏字符串的长

⼀些基于web的⼯具根本没有换⾏的可能

⼀些团对会强烈希望⾏长度不⽌79个字符

当代码仅仅是由⼀个团队维护时,达成⼀致后,可将长度改写成99个字符长度,注释和⽂档字符依然是72个字符

python标准库⽐较保守,要求将⾏长度限制在99个字符串内

推荐的换⾏⽅式是利⽤Python圆括号、⽅括号和花括号中的隐式续⾏(impliedlinecontinuation)。

很长的⾏可以通过在括号内换⾏来分成多⾏。最好加上反斜杠来区别续⾏。有时只能使⽤反斜杠。

较长的多个with语句不能采⽤隐式续⾏,只能接受反斜杠表⽰换⾏:

⼆元运算符之前还是之后换⾏?

⼀直以来推荐的风格是在⼆元运算符之后换⾏。

但是有两⽅⾯可以说明这会破坏代码的可读性:

1.在屏幕上运算符会分散在不同列上

2.运算符会留在上⼀⾏⽽远离操作数

所以,阅读代码的时候眼睛要紧盯来确定哪些操作数被加,哪些操作数被减

空⾏

使⽤2个空⾏来分隔最外层的函数(function)和类(class)定义。

使⽤1个空⾏来分隔类中的⽅法(method)定义。

可以使⽤额外的空⾏(尽量少)来分隔⼀组相关的函数。

在⼀系列相关的仅占⼀⾏的函数之间,空⾏也可以被省略(⽐如⼀组虚函数定义)。

在函数内使⽤空⾏(尽量少)使代码逻辑更清晰。

Python⽀持control-L(如:^L)换页符作为空格;

许多⼯具将这些符号作为分页符,因此可以使⽤这些符号来分页或者区分⽂件中的相关区域。

注意,⼀些编辑器和基于web的代码预览器可能不会将control-L识别为分页符,⽽是显⽰成其他符号。

源⽂件编码

Python关键发⾏版中的代码应该⼀直使⽤UTF-8(Python2中使⽤ASCII)。

使⽤ASCII(Python2)或者UTF-8(Python3)的⽂件不应该添加编码声明。

在标准库中,那些⽤作测试的代码,注释,⽂档字符串需要提及作者名字⽽不得不使⽤⾮ASCII字符时,才能使⽤⾮默认的编码。

否则,在字符串⽂字中包括⾮ASCII数据时,推荐使⽤\x,\u,\U或\N等转义符

此外,字符串⽂字和注释应该只包括ASCII编码。

只有两种例外:

测试情况下为了测试⾮ASCII编码的特性

作者名字。作者名字不是由拉丁字母组成的也必须提供⼀个拉丁⾳译名。

⿎励具有全球受众的开放源码项⽬采⽤类似的原则。

您可能关注的文档

文档评论(0)

. + 关注
官方认证
内容提供者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档