Python学习笔记__8.4章 文档测试

# 这是学习廖雪峰老师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.2、doctest来测试上次编写的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。

原文地址:http://blog.51cto.com/12758568/2116877

时间: 2024-10-12 20:41:13

Python学习笔记__8.4章 文档测试的相关文章

Python学习笔记__8.2章 调试

# 这是学习廖雪峰老师python教程的学习笔记 1.概览 如何在程序出错时,知道哪些变量的值是正确的,哪些变量的值是错误的. 1.1.print() 用print()把可能有问题的变量打印出来 def foo(s): n = int(s) print('>>> n = %d' % n) return 10 / n 1.2.断言 凡是用print()来辅助查看的地方,都可以用断言(assert)来替代: def foo(s): n = int(s) assert n != 0, 'n i

Python学习笔记__8.3章 单元测试

# 这是学习廖雪峰老师python教程的学习笔记 1.概览 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对函数abs(),我们可以编写出以下几个测试用例: 输入正数,比如1.1.2.0.99,期待返回值与输入相同: 输入负数,比如-1.-1.2.-0.99,期待返回值与输入相反: 输入0,期待返回0: 输入非数值类型,比如None.[].{},期待抛出TypeError. 把上面的测试用例放到一个测试模块里,就是一个完整的单元测试. 单元测试的意义: 方便的检测

Python学习笔记#函数中使用文档,让你的函数更容易理解

>>> def intadd(a,b): 'this is a test of the doc of function' return a+b >>> intadd(2,3) 5 >>> intadd.__doc__ 'this is a test of the doc of function' >>>

python学习笔记(八) - 错误、调试、测试

一.错误处理 1. 使用try .. exception .. finally try: print 'try...' r = 10 / 0 print 'result:', r # 出现异常不会打印这句话 except ZeroDivisionError, e: # 如果有异常就会被捕获到 print 'except:', e else: print 'no error!' # 如果没有异常就执行else finally: print 'finally...' # finally是肯定会执行的

Python学习笔记__12.4章 struct

# 这是学习廖雪峰老师python教程的学习笔记 1.概览 struct模块用于解决bytes和其他二进制数据类型的转换 1)struct的pack函数把任意数据类型变成bytes: >>> import struct >>> struct.pack('>I', 10240099) b'\x00\[email protected]' pack的参数: 第一个参数是处理指令: '>I'的意思是:>表示字节顺序是big-endian,也就是网络字节序,I表

Python学习笔记__12.9章 urlib

# 这是学习廖雪峰老师python教程的学习笔记 1.概览 urllib提供了一系列用于操作URL的功能. urllib中包括了四个模块,包括 urllib.request:可以用来发送request和获取request的结果 urllib.error:包含了urllib.request产生的异常 urllib.parse:用来解析和处理URL urllib.robotparse:用来解析页面的robots.txt文件 1.1.urllib.request urllib的request模块可以非

流程python学习笔记:第二章

第二章开始介绍了列表这种数据结构,这个在python是经常用到的结构 列表的推导,将一个字符串编程一个列表,有下面的2种方法.其中第二种方法更简洁.可读性也比第一种要好 str='abc' string=[] for s in str:     print string.append(s) ret=[s for s in str] print ret 用这种for-in的方法来推导列表,有个好处就是不会有变量泄露也就是越界的问题.这在c语言中是需要特别注意的问题. 对于两个以上的列表推导作者用到

Python学习笔记__10.1章 多进程

# 这是学习廖雪峰老师python教程的学习笔记 1.概览 Unix/Linux操作系统提供了一个fork()系统调用.fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回. 子进程永远返回0,而父进程返回子进程的ID.这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID. 1.1.创建子进程 Python的os模块封装了常见

《DOM Scripting》学习笔记-——第八章 充实文档的内容

本章内容 一.一个为文档创建"缩略词语表"的函数 二.一个为文档创建"文献来源链接"的函数 三.一个为文档创建"快速访问键清单"的函数 利用DOM动态的收集和创建一些有用的辅助信息,并把它们呈现在网页上的基本思路: 1.把隐藏在属性里的信息检索出来(遍历.提取) 2.把这些信息动态的创建为一些html内容(创建元素节点.将内容插入元素节点) 3.把这些html内容插入到文档里(追加) Html代码: 1 <!DOCTYPE html PUB