Doctest:在多行上拆分Python函数调用的docstring

时间:2015-02-25 01:53:42

标签: python nosetests docstring doctest

我想知道是否有一种方法可以将多个行的函数调用拆分为doctest。例如,

之类的东西
>>> result = some_func(some_param=1, another_param=4, a_third_param='super_long_string')

我试过

>>> result = some_func(some_param=1, another_param=4, 
    ...     a_third_param='super_long_string')


>>> result = some_func(some_param=1, another_param=4, \
                       a_third_param='super_long_string')

>>> result = some_func(#doctest: +NORMALIZE_WHITESPACE
             some_param=1, 
             another_param=4, 
             a_third_param='super_long_string')

但两者都行不通。任何想法或提示?

编辑: 我正在通过nosetests -sv --with-doctest

运行doctests

1 个答案:

答案 0 :(得分:2)

你的第二个例子非常接近对我有用的东西。在我放了一组椭圆后,我添加了五个空格。

我添加五个空格的原因是因为第一个空格与提示匹配,其他四个与缩进级别匹配。

这是一个使用python 2.7和你提供的功能的例子。

def some_func(some_param, another_param, a_third_param):
    """
    Does something at least some of the time.

    Examples
    --------

    >>> some_func(
    ...     some_param=1,
    ...     another_param=4,
    ...     a_third_param='super_long_string')
    'Worked'
    """
    return 'Worked'

if __name__ == "__main__":
    import doctest
    doctest.testmod()