检查代码规范:命令行模式下,pycodestyle +文件,即可返回代码中的问题
- 代码布局
- 每一级缩进使用4个空格
- 使用代码缩进方式分割代码块
- 制表符只能用在同样适用制表符缩进的代码保持一致
- 不允许同时使用空格和制表符的缩进
- 行限制的最大字符数为79
- 文档字符或注释最大字符数是72。用括号换行,若是字符串相加则在运算符之前换行;使用\进行换行
- 插入空行,顶层函数和类的定义,前后用两个空行隔开
- 类里的方法定义用一个空行隔开
- 变量赋值和导入声明之间插入空行
- 函数调用尽量放在一起
- import导入,推荐一行导入一个包
- 从一个包里导入两个模块,可以写在一行,eg. from urllib import request, parse
- 导入总是位于文件的顶部,在模块注释和文档字符串之后,在模块的全局变量与常量之前
- 文档说明+空1行+导入包+空2行+函数
- 避免通配符的导入,如from bumpy import *
- 表达式和语句中的空格:避免使用无关的空格,紧跟在小括号、中括号或大括号后不能加空格;紧贴在逗号、分号或冒号前没有空格;紧贴在函数参数的左括号前没有空格;两个参数之间要加空格;参数内部赋值等号前后不加空格;变量定义赋值时等号前后都要加空格
- 赋值、+=等、比较、in、not前后也都要加空格。eg.3 >= 1
- 表达式和语句中要有空格,混合运算中优先级高的就不加空格,eg. x=x*2 - 1
- 避免行写多个语句
- 类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行
- 命名规范
- 从任务出发进行命名--完成什么任务
- 使用英文单词命名,不要使用英文简拼
- 不要害怕过长的命名变量
- 避免重复使用变量名表示不同的对象
- 不能使用内建名称,使其在当前命名空间被屏蔽,避免导入的包名和变量名冲突
- 避免使用o和I,容易与0和1混淆
- 避免使用大小写区分不同对象,可使用下划线进行区分,提高可读性
- 命名风格:单个小写字母或单个大写字母,小写单词eg lowercase, 多个小写单词 lowe_case_with,大写单词 UPPERCASE,用下划线分割的大写字母UPPER_CASE_WITH_UNFET.
- 大写字母表示常量
- 另:命名分割-CamelCase eg. CapitalizedWords,此时首字母大写的风格用到缩写时,所有的缩写字母要用大写,如HTTPS everError而非HttpSeverError; mixedCase, 第一个字母首字母小写,其他大写。
- 特殊格式:单下划线开头表示内部使用指示器;单下划线结尾避免与python内部关键词冲突;双下划线开头表示不能直接访问;双下划线开头,双下划线结尾,表示magic对象或存在与用户控制的命名空间内的属性,如__init__。
- 函数名-小写的英文单词,如果有多个单词则用下划线隔开
- 类名-首字母大写
- 函数和方法的参数,self-实例方法的第一个参数,cls-类静态方法的第一个参数
- python包和模块要用简短全小写的名字
- 大部分内置变量是单个单词,首字母大写的命名法之用于异常名(后变加Erro)或内部的常量
- 注释原则
- 注释应是完整的句子
- 注释尽量使用英文进行
- 注释短时,结尾的句号可以参略,块注释一般由完整句子的一个或多个段落组成,每句话结束有句号
- 句尾结束时应使用两个空格
- 注释:应该是完整的句子,第一个单词应该大写
#块注释即对一段代码的解释,写在代码上面
用多行写注释,每行前要写#,#后要有空格;分段时,空一行#,再向下写
#行注释,很短
对一行单独的注释,代码+2个空格+#+空格
#文档注释
文档最开头,在#-*- coding:utf-8 -*-下有
函数文档注释
‘’‘
’‘’
- 有节制使用行内注释
- 要为所有公共模块、函数、类和方法写文档说明,非公共方法没必要,描述方法具体作用的注释,在def那行之后
- 文档注释要描述方法的功能、对参数、返回值和可能的异常进行说明,目的是让使用这个方法的人仅看文档就能知道正确用法
- 把不需要的代码直接删除,而不要注释
- 编程惯用习惯
- 软件使用规范:
bin--启动软件入口
conf-配置文件
core-核心业务逻辑代码
db-存放数据文件和操作数据的代码文件
lib-存放公共的功能
log-存放日志的文件