假设我编写以下函数:
def my_marvellous_list(my_list):
return 'What a marvellous list!'
并希望添加一个文档测试,以验证
my_marvellous_list([4, 5, 10, 7, 3, 8, 50, 3, 1, 8, 40, 87, 4, 2, 756756, 20, 10, 5, 30, 5, 543, 7, 8])
返回'What a marvellous list!'
。
然后我需要修改我的函数,如下所示:
def my_marvellous_list(my_list):
"""
>>> my_marvellous_list([4, 5, 10, 7, 3, 8, 50, 3, 1, 8, 40, 87, 4, 2,
... 756756, 20, 10, 5, 30, 5, 543, 7, 8])
'What a marvellous list!'
"""
return 'What a marvellous list!'
为了将测试插入文档字符串,我必须在每个命令的开头添加>>>
,在每个挂起缩进的开头添加...
。
手动完成这可能会变得乏味 - 是否存在将纯 Python 转换为文档测试格式的自动方法?
IPython有一个%doctest_mode
魔术命令,可以将其提示更改为标准的doctest格式。
In [1]: def my_marvellous_list(my_list):
...: return 'What a marvellous list!'
...:
In [2]: %doctest_mode
Exception reporting mode: Plain
Doctest mode is: ON
>>> my_marvellous_list([4, 5, 10, 7, 3, 8, 50, 3, 1, 8, 40, 87, 4, 2,
... 756756, 20, 10, 5, 30, 5, 543, 7, 8])
'What a marvellous list!'
>>>