【问题标题】:Python - Run function every n second while truePython - 在 true 时每 n 秒运行一次函数
【发布时间】:2020-07-15 21:09:09
【问题描述】:

我阅读了很多帖子,但找不到其他条件有效的解决方案。 可悲的是,我的循环永远不会停止。似乎它没有重复检查 project.IsInProgress() = True

如果我的语句仍然为真,我想每两秒检查一次,如果它不再为真,我想中断重复并执行打印语句。

我猜问题是它没有每两秒钟运行一次函数。但我不知道如何处理。

check_status = project.IsInProgress()

while check_status:
    print('Render in progress..')
    time.sleep(2)
else: 
    print('Render is finished')

【问题讨论】:

  • IsInProgress 返回什么?一个布尔值?
  • 是的,该过程返回一个布尔值,似乎将它附加到一个变量导致布尔值不刷新。当我从 API 中获取所有内容时,我分配了很多变量。我现在在一行中运行所有功能。

标签: python time while-loop sleep


【解决方案1】:

试试这个:

while project.IsInProgress():
    print('Render in progress..')
    time.sleep(2)
print('Render is finished')

或者,如果您愿意:

check_status = project.IsInProgress()
while check_status:
    print('Render in progress..')
    time.sleep(2)
    check_status = project.IsInProgress()
print('Render is finished')

【讨论】:

  • 我必须将所有功能放在一起才能使其工作。非常感谢。 GetManager().GetProject().IsRenderingInProgress():
【解决方案2】:

您的代码仅在代码开头检查一次进行中,如果为真,则循环将永远持续。 为了检查每次迭代的状态,请尝试:

while project.IsInProgress() :
    print('Render in progress..')
    time.sleep(2)
else: 
    print('Render is finished')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多