1. 程式人生 > >Python學習筆記__8.4章 文檔測試

Python學習筆記__8.4章 文檔測試

編程語言 Python

# 這是學習廖雪峰老師python教程的學習筆記

1、概覽

在文檔中編寫規範的註釋代碼。則Python內置的“文檔測試”(doctest)模塊可以直接提取註釋中的代碼並執行測試。

1.1、以abs()函數為例:

#abs.py

def abs(n):

''' # 兩個為一對,換行輸入

Function to get absolute value of number. # 簡單的介紹

Example:

>>> abs(1) # 測試

1

>>> abs(-1)

1

>>> abs(0)

0

''' #

return n if n >= 0 else (-n) # 函數體

$ python abs.py # 命令行執行程序,無返回值,則代碼無誤

1.2doctest來測試上次編寫的Dict

# mydict2.py

class Dict(dict):

'''

Simple dict but also support access as x.y style.

>>> d1 = Dict()

>>> d1['x'] = 100

>>> d1.x

100

>>> d1.y = 200

>>> d1['y']

200

>>> d2 = Dict(a=1, b=2, c='3')

>>> d2.c

'3'

>>> d2['empty']

Traceback (most recent call last):

... # 這三個.表示一大段輸出

KeyError: 'empty'

>>> d2.empty

Traceback (most recent call last):

...

AttributeError: 'Dict' object has no attribute 'empty'

'''

def __init__(self, **kw):

super(Dict, self).__init__(**kw)

def __getattr__(self, key):

try:

return self[key]

except KeyError:

raise AttributeError(r"'Dict' object has no attribute '%s'" % key)

def __setattr__(self, key, value):

self[key] = value

if __name__=='__main__':

import doctest

doctest.testmod()

總結:

doctest非常有用,不但可以用來測試,還可以直接作為示例代碼。通過某些文檔生成工具,就可以自動把包含doctest的註釋提取出來。用戶看文檔的時候,同時也看到了doctest。


Python學習筆記__8.4章 文檔測試