print()的`flush`有什么作用?

发布于 2021-01-29 19:00:46

print()函数有一个布尔型可选参数flush,默认为False。

该文档说这是强制冲洗流。

我不明白冲洗的概念。这里是在冲水吗?什么是流冲洗?

关注者
0
被浏览
38
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    通常,输出到文件或控制台已缓冲,至少在输出换行符之前会输出文本。刷新可确保所有缓冲的输出都将到达目的地。

    我确实使用了它,例如,当我Do you want to continue (Y/n):在获得输入之前输入诸如之类的用户提示时。

    可以模拟(在使用Python 2.7的Ubuntu 12.4上):

    from __future__ import print_function
    
    import sys
    from time import sleep
    
    fp = sys.stdout
    print('Do you want to continue (Y/n): ', end='')
    # fp.flush()
    sleep(5)
    

    如果运行此命令,则将看到提示字符串直到睡眠结束且程序退出后才会显示。如果您用“ flush”取消注释该行,则会看到提示,然后必须等待5秒钟才能完成程序



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看