2017-06-12 17:12:09 +00:00
|
|
|
|
# 二、注释
|
|
|
|
|
|
|
|
|
|
## 1、注释
|
|
|
|
|
|
|
|
|
|
### 1.1、块注释
|
|
|
|
|
“#”号后空一格,段落件用空行分开(同样需要“#”号)
|
2019-08-09 11:08:39 +00:00
|
|
|
|
|
2017-06-12 17:12:09 +00:00
|
|
|
|
```python
|
|
|
|
|
# 块注释
|
|
|
|
|
# 块注释
|
|
|
|
|
#
|
|
|
|
|
# 块注释
|
|
|
|
|
# 块注释
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 1.2、行注释
|
|
|
|
|
至少使用两个空格和语句分开,注意不要使用无意义的注释
|
2019-08-09 11:08:39 +00:00
|
|
|
|
|
2017-06-12 17:12:09 +00:00
|
|
|
|
```python
|
|
|
|
|
# 正确的写法
|
|
|
|
|
x = x + 1 # 边框加粗一个像素
|
|
|
|
|
|
|
|
|
|
# 不推荐的写法(无意义的注释)
|
|
|
|
|
x = x + 1 # x加1
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 1.3、建议
|
|
|
|
|
|
|
|
|
|
* 在代码的关键部分(或比较复杂的地方), 能写注释的要尽量写注释
|
|
|
|
|
|
|
|
|
|
* 比较重要的注释段, 使用多个等号隔开, 可以更加醒目, 突出重要性
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
app = create_app(name, options)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# =====================================
|
|
|
|
|
# 请勿在此处添加 get post等app路由行为 !!!
|
|
|
|
|
# =====================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
app.run()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 2、文档注释(Docstring)
|
|
|
|
|
作为文档的Docstring一般出现在模块头部、函数和类的头部,这样在python中可以通过对象的\_\_doc\_\_对象获取文档.
|
|
|
|
|
编辑器和IDE也可以根据Docstring给出自动提示.
|
|
|
|
|
|
|
|
|
|
* 文档注释以 """ 开头和结尾, 首行不换行, 如有多行, 末行必需换行, 以下是Google的docstring风格示例
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
"""Example docstrings.
|
|
|
|
|
|
|
|
|
|
This module demonstrates documentation as specified by the `Google Python
|
|
|
|
|
Style Guide`_. Docstrings may extend over multiple lines. Sections are created
|
|
|
|
|
with a section header and a colon followed by a block of indented text.
|
|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
Examples can be given using either the ``Example`` or ``Examples``
|
|
|
|
|
sections. Sections support any reStructuredText formatting, including
|
|
|
|
|
literal blocks::
|
|
|
|
|
|
|
|
|
|
$ python example_google.py
|
|
|
|
|
|
|
|
|
|
Section breaks are created by resuming unindented text. Section breaks
|
|
|
|
|
are also implicitly created anytime a new section starts.
|
|
|
|
|
"""
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* 不要在文档注释复制函数定义原型, 而是具体描述其具体内容, 解释具体参数和返回值等
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
# 不推荐的写法(不要写函数原型等废话)
|
|
|
|
|
def function(a, b):
|
|
|
|
|
"""function(a, b) -> list"""
|
|
|
|
|
... ...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 正确的写法
|
|
|
|
|
def function(a, b):
|
|
|
|
|
"""计算并返回a到b范围内数据的平均值"""
|
|
|
|
|
... ...
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* 对函数参数、返回值等的说明采用numpy标准, 如下所示
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
def func(arg1, arg2):
|
|
|
|
|
"""在这里写函数的一句话总结(如: 计算平均值).
|
|
|
|
|
|
|
|
|
|
这里是具体描述.
|
|
|
|
|
|
|
|
|
|
参数
|
|
|
|
|
----------
|
|
|
|
|
arg1 : int
|
|
|
|
|
arg1的具体描述
|
|
|
|
|
arg2 : int
|
|
|
|
|
arg2的具体描述
|
|
|
|
|
|
|
|
|
|
返回值
|
|
|
|
|
-------
|
|
|
|
|
int
|
|
|
|
|
返回值的具体描述
|
|
|
|
|
|
|
|
|
|
参看
|
|
|
|
|
--------
|
|
|
|
|
otherfunc : 其它关联函数等...
|
|
|
|
|
|
|
|
|
|
示例
|
|
|
|
|
--------
|
|
|
|
|
示例使用doctest格式, 在`>>>`后的代码可以被文档测试工具作为测试用例自动运行
|
|
|
|
|
|
|
|
|
|
>>> a=[1,2,3]
|
|
|
|
|
>>> print [x + 3 for x in a]
|
|
|
|
|
[4, 5, 6]
|
|
|
|
|
"""
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 文档注释不限于中英文, 但不要中英文混用
|
|
|
|
|
|
|
|
|
|
* 文档注释不是越长越好, 通常一两句话能把情况说清楚即可
|
|
|
|
|
|
|
|
|
|
* 模块、公有类、公有方法, 能写文档注释的, 应该尽量写文档注释
|
2019-08-09 11:08:39 +00:00
|
|
|
|
|
|
|
|
|
|