gpt4 book ai didi

python - 为什么打印参数flush默认为False?

转载 作者:行者123 更新时间:2023-12-01 08:24:24 24 4
gpt4 key购买 nike

我正在使用 print 来记录 python 脚本的执行情况。

我在任何地方都使用flush = True,因为否则打印语句有时不会出现在它们所在的位置。

我想知道为什么默认值是flush = False。谁能解释一下吗?

谢谢!

最佳答案

不强制 flush默认情况下,您将该决定留给正在写入的底层对象。对于 sys.stdin/stderr这将默认为行缓冲 _io.TextIOWrapper这通常是您在交互式控制台上所期望和想要的。当您将输出交换为文件时,默认情况下不强制 flush每次打印/写入似乎都是合理的。相反,强制flush每次打印后都会覆盖底层对象的缓冲/刷新行为。

明显的警告是当您通过 tee 运行脚本时,处理自己的stdout不直接写入终端。

<小时/>

我又查了一些资料,看看是否有任何关于动机的文字证据。添加flush关键字记录在issue 13761中。显然建议默认为 True对于 stdout于 2012 年提出,但被驳回(参见讨论底部)。我想这就是人们可以应用 Python 之禅的地方:“特殊情况并没有特殊到足以违反规则。”(没有特殊待遇只是因为我们正在写信给 sys.stdout 。; )

还有一个link进入 BDFL 自己声明的邮件列表:

I would be fine with adding a new keyword argument to print() in 3.3 to force a flush, as long as it defaults to off.

关于python - 为什么打印参数flush默认为False?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54377930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com