我可以暂时禁用time.sleep()吗?

时间:2017-09-09 23:00:06

标签: python

我正在创建一个包含很多time.sleep()的程序......我想知道是否有一种方法可以暂时禁用time.sleep()(例如,如果某个参数传递,time.sleep()不运行)

3 个答案:

答案 0 :(得分:0)

如果你的程序不需要使用time模块做任何其他事情,你可以制作一个名为time.py的新python文件,并在其中写一行,内容为pass。保存并将其放在与其他文件相同的目录中。另外,如果你做了一个变量并将它乘以每次.sleep。例如:time.sleep(100*x)您可以将变量设置为零并删除睡眠或将其设置为1以使其正常

答案 1 :(得分:0)

我不明白你为什么要经历这么多麻烦。您可以直接保存原始time.sleep,当您要禁用它时覆盖time.sleep。对于您希望time.sleep无论发生什么的某些地方,只需使用备份time.sleep即可。

import time

org_sleep = time.sleep # save the original time.sleep

sleep = False # set sleep to false when doesn’t want to sleep

if sleep != True: # if sleep is false
    # override time.sleep to an empty function
    time.sleep = lambda x: None 

time.sleep(10) # does not sleep
print("didn’t sleep")

org_sleep(10) # will sleep regardless of sleep being set to true or false
print("slept for 10 seconds")

此外,正如Charles Duffy建议的那样,使用pytest的monkeypatch来模拟time.sleep是首选方式。

答案 2 :(得分:-2)

import time
time.oldsleep = time.sleep
# Set or clear this flag to enable/disable sleep
time.cansleep = True
def mysleep(x):
  if time.cansleep:
    time.oldsleep(x)

time.sleep = mysleep

编辑:删除了hogwash。模块是单身人士。 TIL。