Python01-01_Python3代码样式指导⼿册
underdir linkPython3代码样式指导⼿册
代码布局
缩进
concurring每个缩进级别采⽤4个空格
连续⾏所包装的元素应该要么使⽤Python隐式排列,即垂直对齐于圆括号,⽅括号花括号
或者采⽤悬挂缩进,采⽤悬挂缩进需考虑第⼀⾏不应该包括参数,并且在续⾏中需要再缩进⼀级以清楚显⽰
对于续⾏来说,4空格规则可以不遵守
如果if语句太长,需要⽤到多⾏书写
2个字符(例如if)加上⼀个空格和⼀个左括号刚好是4空格缩进,但这对多⾏条件语句的续⾏是没⽤的因为这会和if语句中嵌套的其他的缩进语句产⽣视觉上的冲突
这份PEP中并没有做出明确的说明应该怎样来区分条件语句和if语句中所嵌套的语句
多⾏结束右圆/⽅/花括号可以单独⼀⾏书写和上⼀⾏的缩进对齐
也可以和多⾏开始的第⼀个字符对齐
Tab还是空格?老电脑win7要不要升级win10
推荐使⽤空格来进⾏缩进
tab应该只有在现有代码已经使⽤tab进⾏缩进的情况下使⽤以便和现有代码保持⼀致
python3不允许tab和空格共同使⽤
每⾏最⼤长度
将所有⾏都限制在79个长度以内
对于连续⼤段的⽂字(⽐如⽂档字符串(docstring)或注释),其结构上的限制更少这些⾏应该被限制在72个字符长度之内
调整窗⼝宽度能让多个⽂件同时打开在屏幕上显⽰,在使⽤代码评审(code review)⼯具时在两个相邻窗⼝显⽰两个版本的代码会更好
很多⼯具默认⾃动换⾏会破坏代码结构,使代码变得难以理解
在窗⼝⼤⼩为80个字符的编辑器中,在换⾏时,编辑器可能会在最后⼀列放置⼀个标记,为避免⾃动换⾏也需要限制酶⾏字符串的长度
⼀些基于web的⼯具根本没有换⾏的可能
html5标签参考手册⼀些团对会强烈希望⾏长度不⽌79个字符
当代码仅仅是由⼀个团队维护时,达成⼀致后,可将长度改写成99个字符长度,注释和⽂档字符依然是72个字符
python标准库⽐较保守,要求将⾏长度限制在99个字符串内
都市中奖类完结小说推荐的换⾏⽅式是利⽤ Python 圆括号、⽅括号和花括号中的隐式续⾏(implied line continuation)。
很长的⾏可以通过在括号内换⾏来分成多⾏。最好加上反斜杠来区别续⾏。有时只能使⽤反斜杠。
较长的多个 with 语句不能采⽤隐式续⾏,只能接受反斜杠表⽰换⾏:
⼆元运算符之前还是之后换⾏?
⼀直以来推荐的风格是在⼆元运算符之后换⾏。
但是有两⽅⾯可以说明这会破坏代码的可读性:
1. 在屏幕上运算符会分散在不同列上
2. 运算符会留在上⼀⾏⽽远离操作数
所以,阅读代码的时候眼睛要紧盯来确定哪些操作数被加,哪些操作数被减
空⾏
使⽤ 2 个空⾏来分隔最外层的函数(function)和类(class)定义。
使⽤ 1 个空⾏来分隔类中的⽅法(method)定义。
可以使⽤额外的空⾏(尽量少)来分隔⼀组相关的函数。
在⼀系列相关的仅占⼀⾏的函数之间,空⾏也可以被省略(⽐如⼀组虚函数定义)。
在函数内使⽤空⾏(尽量少)使代码逻辑更清晰。
Python ⽀持 control-L(如:^L)换页符作为空格;
python在线编辑器python3许多⼯具将这些符号作为分页符,因此可以使⽤这些符号来分页或者区分⽂件中的相关区域。
注意,⼀些编辑器和基于 web 的代码预览器可能不会将 control-L 识别为分页符,⽽是显⽰成其他符号。
源⽂件编码
Python 关键发⾏版中的代码应该⼀直使⽤ UTF-8(Python2 中使⽤ ASCII)。
使⽤ ASCII(Python2)或者UTF-8(Python3)的⽂件不应该添加编码声明。
在标准库中,那些⽤作测试的代码,注释,⽂档字符串需要提及作者名字⽽不得不使⽤⾮ASCII字符时,才能使⽤⾮默认的编码。
否则,在字符串⽂字中包括⾮ ASCII 数据时,推荐使⽤ \x , \u , \U 或 \N 等转义符
此外,字符串⽂字和注释应该只包括 ASCII 编码。
只有两种例外:
测试情况下为了测试⾮ASCII编码的特性
作者名字。作者名字不是由拉丁字母组成的也必须提供⼀个拉丁⾳译名。
⿎励具有全球受众的开放源码项⽬采⽤类似的原则。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论