pythonliu97 发表于 2020-4-29 16:49:04

print 中 flush的作用

print(*object, flush = True)
会强制刷新流,但是在loading效果中,和flush = False的效果并没有不同
import time
for i in range(10):
    print('.',end = '')
    time.sleep(0.5)
效果与下方代码效果相同:
import time
for i in range(10):
    print('.',end = '', flush = True)
    time.sleep(0.5)
请问两者差别在哪里,能否讲解下flush 的作用。

qiuyouzhi 发表于 2020-4-29 16:51:28

https://blog.csdn.net/granthoo/article/details/82880562

永恒的蓝色梦想 发表于 2020-4-29 17:00:52

强制刷新输出流,就是不会先放到缓冲区,直接输出

jackz007 发表于 2020-4-29 17:43:17

本帖最后由 jackz007 于 2020-4-29 17:45 编辑

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

heidern0612 发表于 2020-4-29 17:58:27

flush是直接写到内存里,而不是print存到硬盘上,科学术语就是楼上大神说的。

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

最常见的就是那种可以模拟做个动态加载进度百分比条的。
页: [1]
查看完整版本: print 中 flush的作用