searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Python编程基本规范

2023-05-12 10:25:28
14
0

代码布局

1.1 编码

所有的 Python 脚本文件都应在文件头标上如下标识或其兼容格式的标识。

示例:# -*- coding:utf-8 -*-

 

1.2 注释

Python 的注释分为两种的概念,一种是由 # 开头的“真正的”注释,另一种是 docstrings。前者表明为何选择当前实现以及这种实现的原理和难点,后者表明如何使用这个包、模块、类、函数(方法),甚至包括使用示例和单元测试。

示例1:def request_handler(argu_data):

                 handler = ScheduleResult(config, clog)      #  This is a test! 

                 ret = handler.schedule_result(argu_data)

               return ret

 

示例2:class StatusRequst(tornado.web.RequestHandler):

 

                     """docstring for StatusRequst"""

 

                        def get(self):

               argu_data = self.request.body.decode('utf8')

                   self.write("living")

原则:

  1.  添加注释,涉及重要业务逻辑时必须要加注释,对于大型项目开发时,注释很重要。
  2. 注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。
  3. 行注释:在一句代码后加注释,但是这种方式尽量少使用。比如:x = x + 1 # Increment
  4. 块注释:在一段代码前增加的注释。在‘#’后加一空格。段落之间以只有‘#’的行间隔。

 

1.3 缩进

缩进在Python中很重要,tab制表符和空格不能混用,否则会导致python运行报错。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。

建议使用:4个空格

1.4 行长度

行的最大长度主要是为了保持代码的阅读性,一般情况下,窗口限制在80个字符。

建议长度:72个字符,目前开发人员一般都会配备显示器,可根据业务实际需要调整到100-120个字符。

 

1.5 空行

适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:

  1. 在import不同种类的模块间加空行
  2. 用两行空行分割顶层函数和类的定义,类内方法的定义用单个空行分割。
  3. 函数之间单个空行
  4. 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔;

1.6 空格

空格在Python代码中是有意义的,因为Python的语法依赖于缩进,但适当地加入空格可以增进代码的可读性。参考标准如下:

  1. 总体原则,避免不必要的空格。
  2. 各种右括号前不要加空格。
  3. 函数的左括号前不要加空格。如Func(1)。
  4. 序列的左括号前不要加空格。如list[2]。
  5. 逗号、冒号、分号前不要加空格。
  6. 操作符(=/+=/-+/==/</>/!=/<>/<=/>=/in/not in/is/is not/and/or/not)左右各加一个空格,不要为了对齐增加空格。如果操作符有优先级的区别,可考虑在低优先级的操作符两边添加空格。如:hypot2 = x*x + y*y;  c = (a+b) * (a-b)
  7. 函数默认参数使用的赋值符左右省略空格。
  8. 不要将多句语句写在同一行,尽管使用‘;’允许。

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

1.7 断行

本规范建议行的最大长度不得超过72个字符的标准

折叠长行的方法有以下几种方法:

  1. 为长变量名换一个短名,如:longggggg1 = longggggg2, 改为l_g1 = longggggg1, l_g2=longggggg2, l_g1=l_g2
  2. 在括号(包括圆括号、方括号和花括号)内换行,如:

         def test(v1, v2,

                          v2, v4):

              xxxxx

 

  1. 在长行加入续行符强行断行,断行的位置应在操作符前,且换行后多一个缩进,以使维护人员看代码的时候看到代码行首即可判定这里存在换行

       

       if  value == "b" or value == c \  

                   or value == "d": # 注意 or 操作符在新行的行首而不是旧行的行尾,上一行

 

1.8 导入

imports 通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。imports应该有顺序地成组安放:

import 语句有以下几个原则需要遵守:

  1. import Python 内置模块

2.import第三方模块

3.import自己开发的项目中的其它模块;

这几种模块中用空行分隔开来。一条import语句import一个模块。

 

不要使用 from module import *,除非是import常量定义模块或其它你确保不会出现命名空间冲突的模块。

2 命名

2.1 常量

常量名所有字母大写,由下划线连接各个单词,如:

CONST = value

CONST_VALUE = 1  

2.2 变量

变量名全部小写,由下划线连接各个单词,如:

t_type = "on"

status = 1  

 

2.3 函数

函数名全部小写,由下划线连接各个单词,同变量命名。

建议:一个函数不要超过 30 代码, 即可显示在一个屏幕类,可以不使用垂直游标即可看到整个函数

2.4 类

  1. 类名单词首字母大写,不使用下划线连接单词。如:

class BaseModle(object):  

  pass

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

建议:不要超过 200 代码,不要有超过 10 方法

2.5 模块和包

模块和名全部小写,对于包内使用的模块,可以加一个下划线前缀,如:

module.py  

_internal_module.py  

建议:一个模块 不要超过 500

2.6 其他

  1. 用复数形式命名序列

members = ['user_1', 'user_2']

  1. 用显式名称命名字典

person_address = {'user_1':'10 road WD', 'user_2' : '20 street huafu'}

  1. 避免通用名称

诸如 list, dict, sequence 或者 element 这样的名称应该避免。

  1. 避免现有名称

诸如 os, sys 这种系统已经存在的名称应该避免。

 

3 其他

3.1 赋值

等号两边需有空格,无所谓对齐

a = 1

var = 2

3.2 分支和循环

对于分支和循环,为了使逻辑更清晰,需注意:

不要写成一行,如:

if not flg: pass  

for i in xrange(10): print i  

应写成

if not flg:  

             pass  

for i in xrange(10):  

           print i  

 

4 总结

以上规范基本按照python PEP8摘录,在编码过程中也可以用pep8脚本验证你的python程序。

基本安装方法命令: pip install pep8

       

0条评论
0 / 1000
苏****帅
5文章数
1粉丝数
苏****帅
5 文章 | 1 粉丝
原创

Python编程基本规范

2023-05-12 10:25:28
14
0

代码布局

1.1 编码

所有的 Python 脚本文件都应在文件头标上如下标识或其兼容格式的标识。

示例:# -*- coding:utf-8 -*-

 

1.2 注释

Python 的注释分为两种的概念,一种是由 # 开头的“真正的”注释,另一种是 docstrings。前者表明为何选择当前实现以及这种实现的原理和难点,后者表明如何使用这个包、模块、类、函数(方法),甚至包括使用示例和单元测试。

示例1:def request_handler(argu_data):

                 handler = ScheduleResult(config, clog)      #  This is a test! 

                 ret = handler.schedule_result(argu_data)

               return ret

 

示例2:class StatusRequst(tornado.web.RequestHandler):

 

                     """docstring for StatusRequst"""

 

                        def get(self):

               argu_data = self.request.body.decode('utf8')

                   self.write("living")

原则:

  1.  添加注释,涉及重要业务逻辑时必须要加注释,对于大型项目开发时,注释很重要。
  2. 注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。
  3. 行注释:在一句代码后加注释,但是这种方式尽量少使用。比如:x = x + 1 # Increment
  4. 块注释:在一段代码前增加的注释。在‘#’后加一空格。段落之间以只有‘#’的行间隔。

 

1.3 缩进

缩进在Python中很重要,tab制表符和空格不能混用,否则会导致python运行报错。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。

建议使用:4个空格

1.4 行长度

行的最大长度主要是为了保持代码的阅读性,一般情况下,窗口限制在80个字符。

建议长度:72个字符,目前开发人员一般都会配备显示器,可根据业务实际需要调整到100-120个字符。

 

1.5 空行

适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:

  1. 在import不同种类的模块间加空行
  2. 用两行空行分割顶层函数和类的定义,类内方法的定义用单个空行分割。
  3. 函数之间单个空行
  4. 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔;

1.6 空格

空格在Python代码中是有意义的,因为Python的语法依赖于缩进,但适当地加入空格可以增进代码的可读性。参考标准如下:

  1. 总体原则,避免不必要的空格。
  2. 各种右括号前不要加空格。
  3. 函数的左括号前不要加空格。如Func(1)。
  4. 序列的左括号前不要加空格。如list[2]。
  5. 逗号、冒号、分号前不要加空格。
  6. 操作符(=/+=/-+/==/</>/!=/<>/<=/>=/in/not in/is/is not/and/or/not)左右各加一个空格,不要为了对齐增加空格。如果操作符有优先级的区别,可考虑在低优先级的操作符两边添加空格。如:hypot2 = x*x + y*y;  c = (a+b) * (a-b)
  7. 函数默认参数使用的赋值符左右省略空格。
  8. 不要将多句语句写在同一行,尽管使用‘;’允许。

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

1.7 断行

本规范建议行的最大长度不得超过72个字符的标准

折叠长行的方法有以下几种方法:

  1. 为长变量名换一个短名,如:longggggg1 = longggggg2, 改为l_g1 = longggggg1, l_g2=longggggg2, l_g1=l_g2
  2. 在括号(包括圆括号、方括号和花括号)内换行,如:

         def test(v1, v2,

                          v2, v4):

              xxxxx

 

  1. 在长行加入续行符强行断行,断行的位置应在操作符前,且换行后多一个缩进,以使维护人员看代码的时候看到代码行首即可判定这里存在换行

       

       if  value == "b" or value == c \  

                   or value == "d": # 注意 or 操作符在新行的行首而不是旧行的行尾,上一行

 

1.8 导入

imports 通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。imports应该有顺序地成组安放:

import 语句有以下几个原则需要遵守:

  1. import Python 内置模块

2.import第三方模块

3.import自己开发的项目中的其它模块;

这几种模块中用空行分隔开来。一条import语句import一个模块。

 

不要使用 from module import *,除非是import常量定义模块或其它你确保不会出现命名空间冲突的模块。

2 命名

2.1 常量

常量名所有字母大写,由下划线连接各个单词,如:

CONST = value

CONST_VALUE = 1  

2.2 变量

变量名全部小写,由下划线连接各个单词,如:

t_type = "on"

status = 1  

 

2.3 函数

函数名全部小写,由下划线连接各个单词,同变量命名。

建议:一个函数不要超过 30 代码, 即可显示在一个屏幕类,可以不使用垂直游标即可看到整个函数

2.4 类

  1. 类名单词首字母大写,不使用下划线连接单词。如:

class BaseModle(object):  

  pass

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

建议:不要超过 200 代码,不要有超过 10 方法

2.5 模块和包

模块和名全部小写,对于包内使用的模块,可以加一个下划线前缀,如:

module.py  

_internal_module.py  

建议:一个模块 不要超过 500

2.6 其他

  1. 用复数形式命名序列

members = ['user_1', 'user_2']

  1. 用显式名称命名字典

person_address = {'user_1':'10 road WD', 'user_2' : '20 street huafu'}

  1. 避免通用名称

诸如 list, dict, sequence 或者 element 这样的名称应该避免。

  1. 避免现有名称

诸如 os, sys 这种系统已经存在的名称应该避免。

 

3 其他

3.1 赋值

等号两边需有空格,无所谓对齐

a = 1

var = 2

3.2 分支和循环

对于分支和循环,为了使逻辑更清晰,需注意:

不要写成一行,如:

if not flg: pass  

for i in xrange(10): print i  

应写成

if not flg:  

             pass  

for i in xrange(10):  

           print i  

 

4 总结

以上规范基本按照python PEP8摘录,在编码过程中也可以用pep8脚本验证你的python程序。

基本安装方法命令: pip install pep8

       

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0