PEP8 Python 编码规范

合集下载

PEP8Python编码规范.doc

PEP8Python编码规范.doc

PEP8 Python 编码规范1代码编排1.1 缩进。

4 个空格的缩进(编辑器都可以完成此功能),不使用 Tap,更不能混合使用 Tap 和空格。

1.2 每行最大长度 79,换行可以使用反斜杠,最好使用圆括号。

换行点要在操作符的后边敲回车。

1.3 类和 top-level 函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。

2文档编排2.1 模块内容的顺序:模块说明和docstring — import — globals&constants —其他定义。

其中 import 部分,又按标准、三方和自己编写顺序依次排放,之间空一行。

2.2 不要在一句 import 中多个库,比如 import os, sys 不推荐。

2.3 如果采用 from XX import XX 引用库,可以省略‘ module. ’,都是可能出现命名冲突,这时就要采用 import XX 。

3空格的使用总体原则,避免不必要的空格。

3.1 各种右括号前不要加空格。

3.2 逗号、冒号、分号前不要加空格。

3.3 函数的左括号前不要加空格。

如Func(1)。

3.4 序列的左括号前不要加空格。

如list[2] 。

3.5 操作符左右各加一个空格,不要为了对齐增加空格。

3.6 函数默认参数使用的赋值符左右省略空格。

3.7 不要将多句语句写在同一行,尽管使用‘;’允许。

3.8 if/for/while 语句中,即使执行语句只有一句,也必须另起一行。

4注释总体原则,错误的注释不如没有注释。

所以当一段代码发生变化时,第一件事就是要修改注释!注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。

如果是短语,可以省略结束符。

4.1块注释,在一段代码前增加的注释。

在‘ #’后加一空格。

段落之间以只有‘#’的行间隔。

比如:#Description : Module config.##Input : None## Output : None4.2行注释,在一句代码后加注释。

python-PEP8编码规范-中文简版

python-PEP8编码规范-中文简版

python-PEP8编码规范-中⽂简版
代码布局
缩进:每⼀⾏的缩进使⽤4个空格。

续⾏应该与其包裹的元素对齐,要么使⽤圆括号,⽅括号和花括号内的隐式⾏连接来垂直对齐,要么使⽤挂⾏缩进对齐。

当使⽤挂⾏缩进时,应该考虑到第⼀⾏不应该有参数,以及使⽤缩进以区分⾃⼰是续⾏。

推荐:
制表符还是空格?
空格是⾸选的缩进⽅式。

制表符追能⽤于同样使⽤制表符缩进的代码保持⼀致。

Python3不允许同时使⽤空格和制表符的缩进
混合使⽤制表符和空格的Python2代码应该统⼀转成空格。

当在命令中加⼊-t选项执⾏Python2时,它会发出关于⾮法混⽤制表符与空格的警告。

当使⽤-tt时,这些警告会变成错误,强烈建议使⽤这样的参数。

⾏的最⼤长度
所有⾏限制的最⼤字符数为79.
没有结构化限制的⼤块⽂本(⽂档字符或者注释),每⾏的最⼤字符数限制在72.
限制编辑器窗⼝宽度可以使多个⽂件并⾏打开,并且使⽤代码检查⼯具时⼯作的很好。

python pep8规范

python pep8规范

Python PEP 8规范是一种Python编码风格指南,旨在统一Python程序的可读性,以便大家共同学习、使用和维护Python程序。

它是由Python社区制定的一组编码指南,包括缩进、变量命名、类型注释、模块、表达式和其他编程技巧。

第一,PEP 8指南倡导使用4个空格作为缩进,而不是使用tab键,这样可以确保所有程序的缩进方式一致,使得程序可读性更强。

另外,PEP 8建议缩进块的最大长度不要超过79个字符,以便保证程序易于阅读。

第二,PEP 8指南要求变量名称应该尽量使用小写字母,单词之间使用下划线分隔,而不是使用驼峰命名。

例如,一个名称为“my_variable”的变量,而不是“MyVariable”。

第三,PEP 8指南要求类型注释应该使用“类型:”格式,而不是“type:”。

当声明变量时,应该在变量名称后面添加注释,以提高程序的可读性。

第四,PEP 8指南建议模块名称应该尽量使用小写字母,单词之间使用下划线分隔,模块名称应该尽量简短,并且尽可能使用有意义的名称。

最后,PEP 8指南还建议使用有意义的表达式,并且在表达式中尽可能多地使用空格,以提高代码的可读性。

因此,尽管有些表达式可能只需要一行,但最好将它们拆分成多行,以便更容易理解。

总之,Python PEP 8规范是Python程序的重要参考,它要求程序员遵守一定的编码风格,以便提高Python程序的可读性和可维护性。

pep8标准

pep8标准

pep8标准
PEP8 是 Python 代码风格指南,它包含了一些规范的编码风格,帮助 Python 开发者编写更加优雅、易读、易于维护的 Python 代码。

PEP8 是由 Python 社区制定的一系列约定俗成的规则,它的制定旨在帮助开发者编写高质量的 Python 代码。

PEP8 的全称是Python Enhancement Proposal 8,它是 Python 开发者社区对Python 代码编写规范的提案。

PEP8 规范了 Python 代码的格式、命名、注释、代码布局等方面,从而使 Python 代码更加易读、易于维护,并且符合 Python 社区的共识。

PEP8 规范了 Python 代码中的许多细节,例如代码的缩进、行宽、变量和函数的命名、注释等。

PEP8 还规定了 Python 代码中的一些约定俗成的编码惯例,例如使用四个空格缩进、使用单引号而不是双引号等。

PEP8 的目的是为了提高 Python 代码的可读性和可维护性,使得 Python 代码更加易于理解和修改。

遵循 PEP8 的代码更加规范、易读、易于维护,也更容易被其他开发者接受和理解。

总之,遵循 PEP8 规范编写 Python 代码可以使得代码更加清晰、易读、易于维护,同时也符合 Python 社区的共识,有利于 Python 开发者更好地交流和协作。

PythonPEP8编码规范注释

PythonPEP8编码规范注释

PythonPEP8编码规范注释 与代码相⽭盾的注释⽐没有注释还糟,当代码更改时,优先更新对应的注释! 注释应该是完整的句⼦。

如果⼀个注释是⼀个短语或句⼦,它的第⼀个单词应该⼤写,除⾮它是以⼩写字母开头的标识符(永远不要改变标识符的⼤⼩写!)。

如果注释很短,结尾的句号可以省略。

块注释⼀般由完整句⼦的⼀个或多个段落组成,并且每句话结束有个句号。

在句尾结束的时候应该使⽤两个空格。

当⽤英⽂书写时,遵循Strunk and White (译注:《Strunk and White, The Elements of Style》)的书写风格。

在⾮英语国家的Python程序员,请使⽤英⽂写注释,除⾮你120%的确信你的代码不会被使⽤其他语⾔的⼈阅读。

块注释 块注释通常适⽤于跟随它们的某些(或全部)代码,并缩进到与代码相同的级别。

块注释的每⼀⾏开头使⽤⼀个#和⼀个空格(除⾮块注释内部缩进⽂本)。

块注释内部的段落通过只有⼀个#的空⾏分隔。

、⾏内注释 有节制地使⽤⾏内注释。

⾏内注释是与代码语句同⾏的注释。

⾏内注释和代码⾄少要有两个空格分隔。

注释由#和⼀个空格开始。

事实上,如果状态明显的话,⾏内注释是不必要的,反⽽会分散注意⼒。

⽐如说下⾯这样就不需要:x = x + 1 # Increment x但有时,这样做很有⽤:x = x + 1 # Compensate for border⽂档字符串要为所有的公共模块,函数,类以及⽅法编写⽂档说明。

⾮公共的⽅法没有必要,但是应该有⼀个描述⽅法具体作⽤的注释。

这个注释应该在def那⼀⾏之后。

描述了写出好的⽂档说明相关的约定。

特别需要注意的是,多⾏⽂档说明使⽤的结尾三引号应该⾃成⼀⾏,例如:"""Return a foobangOptional plotz says to frobnicate the bizbaz first."""对于单⾏的⽂档说明,尾部的三引号应该和⽂档在同⼀⾏。

python编码规则

python编码规则

python编码规则Python 的编码规则主要是基于可读性和简洁性,但是还有一些特定的规则和约定。

以下是一些主要的 Python 编码规则:1. 缩进:Python 使用缩进来分组语句。

通常,我们使用四个空格的缩进来表示一个代码块。

不要混合使用制表符和空格,因为这可能导致代码在不同的编辑器或环境中显示不一致。

2. 注释:Python 使用 `` 来注释一行。

多行注释通常使用一对三引号(`"""`)或一对三单引号(`'''`)。

3. 命名约定:Python 的 PEP 8 风格指南建议使用 `snake_case` 来命名函数、变量和方法,使用 `CamelCase` 来命名类名。

4. 导入模块:Python 使用 `import` 语句来导入模块或库。

你可以使用`from...import...` 语法来导入特定的函数或变量。

5. 数据类型:Python 有多种数据类型,包括数字、字符串、列表、元组、字典、集合和布尔值。

不同的数据类型有不同的操作和行为。

6. 错误处理:Python 使用 try/except 块来处理异常。

你可以使用 raise 语句来引发一个异常。

7. 函数和方法定义:Python 的函数和方法定义通常遵循以下格式:`def function_name(parameters):` ,然后是一个冒号和一个缩进块。

8. 模块和包:Python 使用模块和包来组织代码。

一个模块就是一个Python 文件,可以包含函数、类和变量。

包是一个包含多个模块的目录。

9. 文件编码:Python 源代码文件通常使用 UTF-8 编码。

在文件的开头,你可以使用 ` -- coding: utf-8 --` 来指定编码。

10. 全局变量:在函数内部,如果你想使用全局变量,你需要使用 `global` 关键字声明它。

以上就是 Python 的一些基本编码规则,遵循这些规则可以使你的代码更易于阅读和维护。

pep8 python 编码规范

pep8 python 编码规范

pep8 python 编码规范
Python 编码规范是一种统一的编码规范,其旨在编写结构清晰、可操作的 Python 代码。

Python 编码规范,又被称为”PEP 8”,是Python 开发者在编码时应遵循的规范。

它产生的目的是要使编写的代
码能够在平台之间迁移时,尽可能的少出现兼容性的问题。

PEP 8包括缩进和格式的规则,能够让代码具有一致的看法和更
易阅读的外观。

它按照78比分的标准,把长行代码分割为两个或以上行,以合理形式缩进。

它还提供了建议性的文件命名规则,帮助程序
员们更容易记忆文件内容。

另外,它还明确了空行的使用及对注释的
规范,帮助程序员编写出具有较高可读性的代码。

Python编码规范还规定程序员应该使用4个空格表示一次缩进,规定使用空格和制表符结合进行代码格式化以及控制条件之间的空格,禁止在字符串和注释开始和结束处使用空格等。

PEP 8 规定的编码规范一定程度上可以提高程序员的编码水平,
使html代码块更整洁、模块之间的代码更清晰,发挥程序员工作效率
的同时,也能减少非必要的错误。

pep8编码规范

pep8编码规范

pep8编码规范⽂档地址1. pep8(python代码样式规范)2. pep257(Python⽂档字符串相关的约定)3. pep20 (python的禅宗)代码样式规范(pep8)1.⾏缩进:tab(4个空格)隐式⾏连接缩进1、对齐2、层级缩进3、\# 对齐缩进# 对齐缩进foo = dict(name="MuSen", age=18,gender="男", height="180")# 层级缩进(为了区别应当再缩进四格)def fun_add(a, b=200,c=1000, d=2000):return a, b, c, d# ⾏连线 \with open("txt1.txt") as f1,\open("txt2.txt") as f2:f1.read()f2.read()2. 单⾏字符限制所有⾏限制的最⼤字符数为79个没有结构化限制的⼤块⽂本(⽂档字符或者注释),每⾏最⼤字符数限制在723. 空⾏顶级函数和类的定义之间有两⾏空⾏类内部的函数定义之间有⼀个空⾏4. 源⽂件编码⽅式Python核⼼发布中的的代码应该始终UTF-8(Python2中默认是ASCII编码)Python3中不应该有编码声明5. 注释1、与代码组⽭盾的注释⽐没有注释还糟,代码有更新,更新对应的的注释!2、如果注释很短,结尾句号可以省略。

块注释⼀般由完整句⼦的⼀个或多个段落组成,并且每句话结束有个句号。

在句尾结束的时候应该使⽤两个空格3、在⾮英语国家的Python程序员,请使⽤英⽂写注释,除⾮你120%的确信你的代码不会被其他语⾔的⼈阅读----忽略⾏内注释⾏内注释和代码⾄少要有两个空格分离注释由#和⼀个空格开始,有节制的使⽤a = 6print(a) # 打印a块注释块注释通常使⽤与跟随他们的某些(或全部)代码,并锁紧到与代码相同的级别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PEP8 Python 编码规范
1代码编排
1.1缩进。

4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使
用Tap和空格。

1.2每行最大长度79,换行可以使用反斜杠,最好使用圆括号。

换行点要在操作符的
后边敲回车。

1.3类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无
关段落之间空一行;其他地方尽量不要再空行。

2文档编排
2.1模块内容的顺序:模块说明和docstring—import—globals&constants—其他定义。

其中import部分,又按标准、三方和自己编写顺序依次排放,之间空一行。

2.2不要在一句import中多个库,比如import os, sys不推荐。

2.3如果采用from XX import XX引用库,可以省略‘module.’,都是可能出现命名冲
突,这时就要采用import XX。

3空格的使用
总体原则,避免不必要的空格。

3.1各种右括号前不要加空格。

3.2逗号、冒号、分号前不要加空格。

3.3函数的左括号前不要加空格。

如Func(1)。

3.4序列的左括号前不要加空格。

如list[2]。

3.5操作符左右各加一个空格,不要为了对齐增加空格。

3.6函数默认参数使用的赋值符左右省略空格。

3.7不要将多句语句写在同一行,尽管使用‘;’允许。

3.8if/for/while语句中,即使执行语句只有一句,也必须另起一行。

4注释
总体原则,错误的注释不如没有注释。

所以当一段代码发生变化时,第一件事就是要修改注释!注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。

如果是短语,可以省略结束符。

4.1块注释,在一段代码前增加的注释。

在‘#’后加一空格。

段落之间以只有‘#’
的行间隔。

比如:
# Description : Module config.
#
# Input : None
#
# Output : None
4.2行注释,在一句代码后加注释。

比如:x = x + 1# Increment x
但是这种方式尽量少使用。

4.3避免无谓的注释。

5文档描述
5.1为所有的共有模块、函数、类、方法写docstrings;非共有的没有必要,但是可以
写注释(在def的下一行)。

5.2如果docstring要换行,参考如下例子,详见PEP 257
"""Return a foobang
Optional plotz says to frobnicate the bizbaz first.
"""
6命名规范
总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。

6.1尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。

6.2模块命名尽量短小,使用全部小写的方式,可以使用下划线。

6.3包命名尽量短小,使用全部小写的方式,不可以使用下划线。

6.4类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。

6.5异常命名使用CapWords+Error后缀的方式。

6.6全局变量尽量只在模块内有效,类似C语言中的static。

实现方法有两种,一是
__all__机制;二是前缀一个下划线。

6.7函数命名使用全部小写的方式,可以使用下划线。

6.8常量命名使用全部大写的方式,可以使用下划线。

6.9类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。

6.10类的属性有3种作用域public、non-public和subclass API,可以理解成C++中的
public、private、protected,non-public属性前,前缀一条下划线。

6.11类的属性若与关键字名字冲突,后缀一下划线,尽量不要使用缩略等其他方式。

6.12为避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。

比如:类Foo
中声明__a,访问时,只能通过Foo._Foo__a,避免歧义。

如果子类也叫Foo,那就
无能为力了。

6.13类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。

7编码建议
7.1编码中考虑到其他python实现的效率等问题,比如运算符‘+’在CPython(Python)
中效率很高,都是Jython中却非常低,所以应该采用.join()的方式。

7.2尽可能使用‘is’‘is not’取代‘==’,比如if x is not None 要优于if x。

7.3使用基于类的异常,每个模块或包都有自己的异常类,此异常类继承自Exception。

7.4异常中不要使用裸露的except,except后跟具体的exceptions。

7.5异常中try的代码尽可能少。

比如:
try:
value = collection[key]
except KeyError:
return key_not_found(key)
else:
return handle_value(value)
要优于
try:
# Too broad!
return handle_value(collection[key])
except KeyError:
# Will also catch KeyError raised by handle_value()
return key_not_found(key)
7.6使用startswith() and endswith()代替切片进行序列前缀或后缀的检查。

比如:
Yes: if foo.startswith('bar'):优于
No: if foo[:3] == 'bar':
7.7使用isinstance()比较对象的类型。

比如
Yes: if isinstance(obj, int): 优于
No: if type(obj) is type(1):
7.8判断序列空或不空,有如下规则
Yes: if not seq:
if seq:
优于
No: if len(seq)
if not len(seq)
7.9字符串不要以空格收尾。

7.10二进制数据判断使用if boolvalue的方式。

相关文档
最新文档