鱼C论坛

 找回密码
 立即注册
查看: 1278|回复: 2

[已解决]flush()

[复制链接]
发表于 2022-5-15 08:58:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
语法
以下是 print() 方法的语法:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

请问这个刷新缓存有什么作用,在哪要用到
最佳答案
2022-5-15 09:07:49
本帖最后由 傻眼貓咪 于 2022-5-15 11:52 编辑

试试这个代码:
有 flush:
  1. import time
  2. print("读取中", end = "")
  3. for i in range(6):
  4.     print(".", end = '', flush = True)
  5.     time.sleep(.5)
复制代码
没有 flush
  1. import time
  2. print("读取中", end = "")
  3. for i in range(6):
  4.     print(".", end = '')
  5.     time.sleep(.5)
复制代码

可以看得出,没有 flush 的时候,默认都是等到所有数据留在缓冲区后,才开始一次打印全部,而有 flush 则是当每次已有数据,就直接打印。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-15 09:07:49 | 显示全部楼层    本楼为最佳答案   
本帖最后由 傻眼貓咪 于 2022-5-15 11:52 编辑

试试这个代码:
有 flush:
  1. import time
  2. print("读取中", end = "")
  3. for i in range(6):
  4.     print(".", end = '', flush = True)
  5.     time.sleep(.5)
复制代码
没有 flush
  1. import time
  2. print("读取中", end = "")
  3. for i in range(6):
  4.     print(".", end = '')
  5.     time.sleep(.5)
复制代码

可以看得出,没有 flush 的时候,默认都是等到所有数据留在缓冲区后,才开始一次打印全部,而有 flush 则是当每次已有数据,就直接打印。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-15 10:19:40 | 显示全部楼层

print() 函数的 flush 参数可以设置为 True,以阻止函数对输出数据进行缓冲,并强行刷新。

如果将 flush 参数设置为 True,则 print() 函数将不会对数据进行缓冲以提高效率,而是在每次调用时不断地对数据进行刷新。


简单理解就是打印函数在每次调用时将输出数据写在屏幕或文件上,而不是存入缓冲区。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 18:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表