Doctest 没有期望,但是 file.write() 输出了一些东西

Doctest expects nothing, but file.write() outputs something

我是运行程序的简单doctest,测试的一部分是将1,000个空行写入文本文件。

>>> NUMLINES = 1000
>>> with open(file_path, "w") as f: f.write("blankline\n"*NUMLINES)
>>> some_function(arg)

Doctest 不期望任何内容,但以某种方式写入文件会产生整数 10,000。

Failed example:
    with open(status_path,"w") as f: f.write("blankline\n"*NUMLINES)
Expected nothing
Got:
    10000

我不知道 10,000 是从哪里来的,这甚至不是我正在测试的东西。有什么想法吗?

更新:

返回的值似乎是写入文本文件的所有字符的总和。 len("blankline\n") * NUMLINES = 10,000

你的测试是错误的。 f.write() returns 东西:

write(s)

Write the string s to the stream and return the number of characters written.

关于继承的注意事项:open(mode="w") returns io.TextIOWrapper 的一个实例,它继承自 io.TextIOBase,它提供 write 方法。