Python代码注释规范代码实例解析


Posted in Python onAugust 14, 2020

一、代码注释介绍

  • 注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。
  • 注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。
  • 在有处理逻辑的代码中,源程序有效注释量必须在20%以上。

二、代码注释分类

行注释:在符号后那一行不会被编译(显示)

块注释:被块注释符号中间的部分不会被编译

三、python代码注释基础

Python中使用#表示单行注释。单行注释可以作为单独的一行放在被注释代码行之上,也可以放在语句或表达式之后。如下例子:

name = 'xiaohong' # 单行注释

# 单行注释
name = 'xiaohong'

Python中使用三个单引号或三个双引号表示多行注释。用在注释多写不下的情况,如下例子:

'''
这是使用三个单引号的多行注释
'''

"""
这是使用三个双引号的多行注释
"""

四、DocStrings介绍与使用

4.1 DocStrings介绍

文档字符串

是一个重要工具,用于解释文档程序,帮助你的程序文档更加简单易懂

4.2 python中使用DocStrings

在函数体的第一行使用一对三个单引号 ''' 或者一对三个双引号 """ 来定义文档字符串。你可以使用 doc(注意双下划线)调用函数中的文档字符串属性。

编写示例如下:

def add(num1,num2):
  """ 完成传入的两个数之和

  :param num1: 加数1
  :param num2: 加数2
  :return: 和
  """
  return num1 + num2

print( add.__doc__ )

备注:DocStrings 文档字符串使用惯例:它的首行简述函数功能,第二行空行,第三行为函数的具体描述。

五、DocStrings常用编写风格

5.1 reST风格

这是现在流行的一种风格,reST风格,Sphinx的御用格式,比较紧凑。

"""
This is a reST style.

:param param1: this is a first param
:param param2: this is a second param
:returns: this is a description of what is returned
:raises keyError: raises an exception
"""

5.2 Google风格

"""
This is a groups style docs.

Parameters:
 param1 - this is the first param
 param2 - this is a second param

Returns:
 This is a description of what is returned

Raises:
 KeyError - raises an exception
"""

5.3 Numpydoc (Numpy风格)

"""
My numpydoc description of a kind
of very exhautive numpydoc format docstring.

Parameters
----------
first : array_like
 the 1st param name `first`
second :
 the 2nd param
third : {'value', 'other'}, optional
 the 3rd param, by default 'value'

Returns
-------
string
 a value in a string

Raises
------
KeyError
 when a key error
OtherError
 when an other error
"""

六、一些注释经验

  • 注释不是越多越好。对于一目了然的代码,不需要添加注释。
  • 对于复杂的操作,应该在操作开始前写上相应的注释。
  • 对于不是一目了然的代码,应该在代码之后添加注释。
  • 绝对不要描述代码。一般阅读代码的人都了解Python的语法,只是不知道代码要干什么

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python分割和拼接字符串
Nov 01 Python
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
Python实现简单多线程任务队列
Feb 27 Python
Python 正则表达式的高级用法
Dec 04 Python
Python开发的HTTP库requests详解
Aug 29 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
python清除字符串前后空格函数的方法
Oct 21 Python
python numpy元素的区间查找方法
Nov 14 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
Django实现文件上传下载
Oct 06 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 Python
Python实例教程之检索输出月份日历表
Dec 16 Python
Python发送邮件实现基础解析
Aug 14 #Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 #Python
Python编写memcached启动脚本代码实例
Aug 14 #Python
Python自动巡检H3C交换机实现过程解析
Aug 14 #Python
基于python调用jenkins-cli实现快速发布
Aug 14 #Python
使用tensorflow进行音乐类型的分类
Aug 14 #Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 #Python
You might like
php时区转换转换函数
2014/01/07 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
php压缩文件夹最新版
2018/07/18 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
JavaScript实现表格排序方法
2013/06/14 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
require.js中的define函数详解
2017/07/10 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
Servlet面试题库
2015/07/18 面试题
机械制造专业个人的自我评价
2013/12/28 职场文书
八年级历史教学反思
2014/01/10 职场文书
迟到早退检讨书
2014/02/10 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
幼儿园开学通知
2015/04/24 职场文书
开学第一周值周总结
2015/07/16 职场文书
Java8中Stream的一些神操作
2021/11/02 Java/Android