Python Docstring 如何在docstring中写多行列表?
Python Docstring How to write list in multiple lines in docstring?
我正在尝试编写一个列表输出,我在 doctest 中将其扩展为多行。但是实际输出与我的预期不符。
这是我的代码。
def make_board(dimension: int, queens: list):
"""
>>> make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)])
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
"""
assert dimension == len(queens)
return [[(row, col) in queens for col in range(dimension)] for row in range(dimension)]
这是测试结果。
Failed example:
make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)])
Expected:
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
Got:
[[False, True, False, False], [False, False, False, True], [True, False, False, False], [False, False, True, False]]
如果你想看到一个漂亮的结果,你可以使用内置打印:
from pprint import pprint
def make_board(dimension: int, queens: list):
"""
>>> make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)])
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
"""
assert dimension == len(queens)
result = [[(row, col) in queens for col in range(dimension)] for row in range(dimension)]
pprint(result)
return result
每次调用函数都会看到结果,所以我不建议这样做。
>>>a=make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)])
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
>>>a
[[False, True, False, False], [False, False, False, True], [True, False, False, False], [False, False, True, False]]
使用NORMALIZE_WHITESPACE
选项。它可以通过不同的方式启用,例如通过文档字符串中的指令:
def make_board(dimension: int, queens: list):
"""
>>> make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)]) # doctest: +NORMALIZE_WHITESPACE
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
"""
我正在尝试编写一个列表输出,我在 doctest 中将其扩展为多行。但是实际输出与我的预期不符。
这是我的代码。
def make_board(dimension: int, queens: list):
"""
>>> make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)])
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
"""
assert dimension == len(queens)
return [[(row, col) in queens for col in range(dimension)] for row in range(dimension)]
这是测试结果。
Failed example:
make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)])
Expected:
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
Got:
[[False, True, False, False], [False, False, False, True], [True, False, False, False], [False, False, True, False]]
如果你想看到一个漂亮的结果,你可以使用内置打印:
from pprint import pprint
def make_board(dimension: int, queens: list):
"""
>>> make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)])
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
"""
assert dimension == len(queens)
result = [[(row, col) in queens for col in range(dimension)] for row in range(dimension)]
pprint(result)
return result
每次调用函数都会看到结果,所以我不建议这样做。
>>>a=make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)])
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
>>>a
[[False, True, False, False], [False, False, False, True], [True, False, False, False], [False, False, True, False]]
使用NORMALIZE_WHITESPACE
选项。它可以通过不同的方式启用,例如通过文档字符串中的指令:
def make_board(dimension: int, queens: list):
"""
>>> make_board(4, [(0, 1), (1, 3), (2, 0), (3, 2)]) # doctest: +NORMALIZE_WHITESPACE
[[False, True, False, False],
[False, False, False, True],
[True, False, False, False],
[False, False, True, False]]
"""