python编码规范和工程结构化

本文介绍了Python编程的PEP8规范,包括缩进、行长度、空行使用、注释标准、命名约定、字符串引号选择以及模块和包的导出规则。此外,还讨论了工程结构化的关键要素,如readme、LICENSE、setup.py、requirements.txt、docs、tests目录等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PEP8 代码规范

实用: 在pycharm里使用快捷键Ctrl+Alt+L 可根据pep8规范格式化代码

1. 缩进
每一级缩进使用4个空格。
续行应该与其包裹元素对齐,要么使用圆括号、方括号和花括号内的隐式行连接来垂直对齐,要么使用挂行缩进对齐。当使用挂行缩进时,第一行不应该有参数,以及使用缩进以区分自己是续行。

2. 行的最大长度
所有行限制最大字符数为79。
没有结构化限制的最大块文本,每行的最大字符数限制在72。

3. 空行
顶层函数和类的定义,前后用两个空行隔开。
类里的方法定义用一个空行隔开。

4. 注释
当代码更改时,优先更新对应的注释。
注释应该是完整的句子。如果一个注释是一个短语或句子,它的第一个单词应该大写,除非它是以小写字母开头的标识符。
如果注释很短,结尾的句号可以省略。
块注释一般由完整的句子的一个或多个段落组成,并且每句话结束有句号。
在句尾结束的时候应该使用两个空格。
在非英语国家,请使用英文写注释。
块注释:
块注释通常适用于跟随它们的某些代码,并缩进到与代码相同的级别。块注释的每一行开头使用 一个#和一个空格(除非块注释内部缩进文本)。
块注释内部的段落通常只有一个#的空行分隔。
行内注释:
行内注释是与代码语句同行的注释。行内注释和代码至少要有两个空格分隔。注释由#和一个空格开始。
有节制的使用行内注释。
文档字符串----pep 257规范
要为所有的公共模块,函数,类以及方法编写文档说明。
非公共的方法没有必要,但是应该有一个描述方法具体作用的注释。这个注释应该在def那一行之后。
多行文档说明使用的结尾三引号应该自成一行。
对于单行的文档说明,尾部的三引号应该和文档在同一行。
查看文档字符串 模块._ doc _

5. 命名约定
变量命名
不要使用l(小写的L),O(大写的o),或者I(大写的I)作为单字符变量名。
在有些字体里,这些字符无法和数字0和1区分,如果想要用l,用L代替。
函数命名
函数名应该小写,如果想要提高可读性可以用下划线分隔。
大小写混合仅在为了兼容原来主要以大小写混合风格的情况下使用(比如threading.py),保持向后兼容性。
类命名
类名一般使用首字母大写的约定。
在接口为文档化并且主要被用于调用的情况下,可以使用函数的命名风格替代。
对于内置的变量名有一个单独的约定:大部分内置变量是单个单词(或者连个单词连接在一起),首字母大写的命名法只用于异常名或者内部的常量。
类里面行数和方法参数
始终要将self作为实例方法的第一个参数。
始终要讲cls作为类静态方法的第一个参数。
如果函数的参数名和已有的关键字冲突,在最后加单一下划线所谓或者随意拼写更好。因此class_比clss更好。

6. 字符串引号
单引号和双引号字符串是相同的。PEPE不会为这个给出建议。选择一条规则并坚持使用下午。当一个字符串中包含单引号或者双引号字符的时候,使用和最外层不同的符号来避免使用反斜杠,从而提高可读性。

7. 模块和包导出规范
命名规范:
模块名称要短,使用小写,并避免使用特殊符号,比如点号和问号。
尽量保持模块名称简单,以无需分开单词(不推荐在两个单词之间使用下划线)
模块导入建议:

# 推荐
import os
import sys

# 不推荐
import os,sys

# 也可以
from subprocess import Popen, PIPE

# 尽量不要使用
from modul import *

模块导入的顺序:
先导入python的官方库
再导入安装的第三方模块
最后导入自定义的模块和包

任意包含__init__.py文件的目录都被认为是一个Python包。
导入包时会首先执行init.py这个文件
如果模块中存在全局变量__all__,那么通过from xx import *导入该模块时只会导入__all__变量中指定的方法和变量,没有的话默认全部导入

工程结构化

  • readme:对项目的整体介绍,同时也是一份使用手册,需要时常维护更新。通常为README.rst/README.md。
  • LICENSE:阐述该项目的许可说明和授权。
  • setup.py:通过setup把核心代码打包发布。
  • 项目目录:存放项目的核心代码。
  • requirements.txt:存放该项目所有依赖的第三方库。
  • docs:包的参考文档。
  • tests:所有的代码测试都存放于该目录下
  • makefile:用于项目的命令管理(开源项目广泛使用)。

根据项目需求添加其他的文件和目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值