【发布时间】:2014-06-21 19:13:33
【问题描述】:
我是第一次,所以要温柔!
使用 Python 3.4,在 Win 7 上,我注意到 time.sleep() 意外挂起。我搜索了,但我发现的相关问题并没有解决我的问题。以下代码作为 预期:
from time import sleep
def am_i_running():
while True:
print('starting test')
sleep(0.5)
print(".", end="")
if __name__ == '__main__':
am_i_running()
它打印“开始”测试,然后是无限序列的“.开始测试”行。但是,如果我移动“开始”消息,以便我拥有:
from time import sleep
def am_i_running():
while True:
sleep(0.5)
print(".", end="")
if __name__ == '__main__':
print('starting test')
am_i_running()
这会打印“开始测试”,然后永远挂起——但仅当作为脚本运行时。如果我将模块导入 Idle 并调用'am_i_running()',它就可以了。此外,如果我完全省略“开始测试”输出,它也可以在命令行中正常工作。问题似乎在于 print 语句的位置,而不是 time.sleep 本身。
我猜这是一个特性,而不是一个错误;但我不明白。希望这里有人可以启发我。
【问题讨论】:
标签: python