鱼C论坛

 找回密码
 立即注册
查看: 2284|回复: 4

print 中 flush的作用

[复制链接]
发表于 2020-4-29 16:49:04 | 显示全部楼层 |阅读模式

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

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

x
print(*object, flush = True)
会强制刷新流,但是在loading效果中,和flush = False的效果并没有不同
  1. import time
  2. for i in range(10):
  3.     print('.',end = '')
  4.     time.sleep(0.5)
复制代码

效果与下方代码效果相同:
  1. import time
  2. for i in range(10):
  3.     print('.',end = '', flush = True)
  4.     time.sleep(0.5)
复制代码

请问两者差别在哪里,能否讲解下flush 的作用。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 16:51:28 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 17:00:52 | 显示全部楼层
强制刷新输出流,就是不会先放到缓冲区,直接输出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 17:43:17 | 显示全部楼层
本帖最后由 jackz007 于 2020-4-29 17:45 编辑

        flush 是 print() 函数的命名可选参数之一,该参数是布尔型变量,有效值为 True 和 False,缺省值为 False。在缺省状态下,系统会把 print() 函数需要显示的文本信息保存到输出缓冲区,只有满足特定条件或接到清空缓冲区命令的时候,才会把缓冲区的内容实际输出到屏幕上,并把缓冲区清空。在这种状态下,用户无法实时看到 print() 函数输出的文字信息。而如果使用了 flush = True 选项,print() 函数会自动添加清空缓冲区的指令,使用户及时看到屏显信息。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 17:58:27 | 显示全部楼层
flush是直接写到内存里,而不是print存到硬盘上,科学术语就是楼上大神说的。

这种用于强制刷新内存的案例在实际应用中有很多。

最常见的就是那种可以模拟做个动态加载进度百分比条的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 11:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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