我正在使用pytest检查多行文档字符串,而在测试中检查这些多行注释的方法包括制作一个临时文件,并使用write()
来写入文档字符串,然后进行搜索。
def test_file_contains_multiline_python_comment_count(tmpdir):
"""Checks that the multiline python comment count works"""
hello_file = tmpdir.mkdir("subdirectory").join("Hello.py")
hello_file.write(""" hello \n world """)
assert hello_file.read() == """ hello \n world """
assert len(tmpdir.listdir()) == 1
comment_count = entities.count_entities(
hello_file.basename, hello_file.dirname, comments.count_multiline_python_comment
)
assert comment_count == 1
但是,我无法弄清楚如何编写实际的文档字符串。例如,"""hello"""
会简单地显示为hello
答案 0 :(得分:0)
如果我需要将docsting写入文件,我将使用__doc__
属性使用this方式来接收文档字符串:
def some_function():
"""some docstring
multiline"""
return 0
>>> some_function.__doc__
'some docstring\n multiline'
>>> type(some_function.__doc__)
<class 'str'>
在此之后,将此文档编写为常规字符串:
hello_file.write(some_function.__doc__)
答案 1 :(得分:0)
正如评论中已经提到的,"""
仅显示多行字符串。如果您只想向文件写入文档字符串,则可以直接从具有__doc__
属性的函数中获取文档字符串。然后,您可以将其以任何想要的格式写入到这样的文件中:
def test():
"""
This is docstring of the test function
"""
return "Hello"
if __name__ == "__main__":
with open("out.txt", "w") as f:
f.write('"""\n' + (test.__doc__).strip() + '\n"""')