Python自編寫help文檔以及文檔測試

Python自編寫help文檔以及文檔測試

一 以注釋方式為類添加幫助文檔

我們知道,Python中可以使用help(模塊名)或者help(類名)的形式來查看一個模塊或者類的幫助文檔,我們也可以為自定義的類添加幫助文檔,並用help進行查看.Python中用三對雙引號可以進行多行注釋,當我們把這種注釋內容放到一個類或者函數定義的下面時,它會自動被當作該類或者函數的幫助文檔.請看下面的類:

docts.py:

[python] view plain copy

#coding:utf-8

class MyMath:

"""

A class with math operator

"""

def add(self,x,y):

"""

Function to get the sum of x and y.

Example:

>>> mt=MyMath()

>>> mt.add(1,2)

3

>>> mt.add(3,-2)

1

>>> mt.add(2.4,1.5)

3.9

"""

return x+y

我們用三對雙引號對類和其成員函數add進行了注釋,那麼我們就可以通過下面的方式查看該模塊和類的幫助.

查看模塊docts.py:

[plain] view plain copy

>>> help(docts)

[plain] view plain copy

Help on module docts:

NAME

docts - #coding:utf-8

FILE

/home/hyman/projects/pythonTs/docts.py

CLASSES

MyMath

class MyMath

| A class with math operator

|

| Methods defined here:

|

| add(self, x, y)

| Function to get the sum of x and y.

| Example:

| >>> mt=MyMath()

| >>> mt.add(1,2)

| 3

| >>> mt.add(3,-2)

查看類MyMath:

[plain] view plain copy

>>> from docts import MyMath

>>> help(MyMath)

[plain] view plain copy

Help on class MyMath in module docts:

class MyMath

| A class with math operator

|

| Methods defined here:

|

| add(self, x, y)

| Function to get the sum of x and y.

| Example:

| >>> mt=MyMath()

| >>> mt.add(1,2)

| 3

| >>> mt.add(3,-2)

| 1

| >>> mt.add(2.4,1.5)

| 3.9

(END)

二 利用doctest進行文檔測試

我們在上面的模塊中加入下面這段代碼:

[python] view plain copy

if __name__==__main__:

import doctest

doctest.testmod()

請注意我們寫的注釋中的下面這段內容:

[plain] view plain copy

Example:

>>> mt=MyMath()

>>> mt.add(1,2)

3

>>> mt.add(2.4,1.5)

3.9

當我們在終端中運行該模塊時,導入doctest.testmod()會自動在終端測試我們所寫的這些例子:

[plain] view plain copy

hyman@hyman-VirtualBox:~/projects/pythonTs$ python docts.py

hyman@hyman-VirtualBox:~/projects/pythonTs$

運行之後你會發現,什麼結果都沒列印,那是因為我們寫的例子是正確的,我們可以修改下例子中代碼,把運算結果改錯

[plain] view plain copy

>>> mt.add(3,-2)

0

再運行就報錯了(注意寫運行示例時,>>>和python語句之間要有一個空格,否則會出現語法錯誤.)

[plain] view plain copy

[plain] view plain copy

hyman@hyman-VirtualBox:~/projects/pythonTs$ python docts.py

**********************************************************************

File "docts.py", line 13, in __main__.MyMath.add

Failed example:

mt.add(3,-2)

Expected:

0

Got:

1

**********************************************************************

1 items had failures:

1 of 4 in __main__.MyMath.add

***Test Failed*** 1 failures.


推薦閱讀:

Galaxy C5 Pro背後:三星緣何在中高端市場站穩腳跟?
FDA批准首個可預測死亡的AI,這套系統能有效拯救生命
在華為開會是怎樣一番體驗?
後悔!我在開辦 SaaS 公司之前原本就應該知道的 9 件事
目前為止世界上最大的數字和最小的數字是多少?

TAG:科技 | 編程 | Python |