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

Python 我可以暂时禁用time.sleep()吗?,python,Python,我正在制作一个包含大量时间的程序。sleep()。。。我想知道是否有办法暂时禁用time.sleep()s(例如,如果传递了某个参数,time.sleep()s不运行) 编辑:废话删除。模块是单例的。TIL.如果您的程序不需要将时间模块用于其他任何事情,您可以创建一个名为time.py的新python文件,并只在其中写入一行,读取pass。将其保存并放置在与其他文件相同的目录中。另外,如果您创建了一个变量,并将其乘以time.sleep。例如:time.sleep(100*x)您可以将变量设置为

我正在制作一个包含大量
时间的程序。sleep()
。。。我想知道是否有办法暂时禁用
time.sleep()
s(例如,如果传递了某个参数,
time.sleep()
s不运行)


编辑:废话删除。模块是单例的。TIL.

如果您的程序不需要将时间模块用于其他任何事情,您可以创建一个名为time.py的新python文件,并只在其中写入一行,读取
pass
。将其保存并放置在与其他文件相同的目录中。另外,如果您创建了一个变量,并将其乘以time.sleep。例如:
time.sleep(100*x)
您可以将变量设置为零以消除睡眠,或设置为1以使其正常

我不明白您为什么要经历这么多麻烦。您只需保存原始的
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建议的,使用PyTestMyKePoT来模拟<代码>时间。睡眠>代码>是首选的方式。

<代码> DEFO(x):如果x==“睡眠”:时间。睡眠(100)< /代码>这可能或将如何工作?请考虑Google的“Python嘲讽框架”。在Python 3中,甚至是标准库的一部分。将模拟对象替换为真实对象(同样,任何合适的模拟框架都可以使用上下文管理器在以后撤消更改——无需像接受的答案那样手动执行),现在就是这样了。(另请参见pytest)。对于没有Python经验的人,我不会发现,因此提出了这个问题。模块是单例的,您可以在
时间
模块中修改
seep
,这样更改在使用
时间的任何地方都可见。sleep
。唯一的例外是,当您在完成补丁之前使用“从时间导入睡眠”时。Philip:答案中关于需要在您再次导入模块的任何位置进行更改的部分是不真实的,后续尝试执行相同操作将导致时间。oldsleep
被设置为先前已覆盖的模块版本函数,尽管它可以“工作”,但它完全没有必要(而且可能会让真正了解Python如何处理模块加载的人感到困惑)。现在回到Python 101。不管@Charles Duffy怎么说,在本例中,我没有什么理由使用pytest的monkeypatch,因为自己做这件事太微不足道了。见问题。
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")