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