2

这是我的代码,它应该基本上将 end 更改为 start + 25 分钟。我只是想知道是否有办法将 datetime.datetime.now() 更新为当前时间。就目前而言,它只是停留在我第一次使用该模块时的状态。所以 if 语句永远不会是真的。

import datetime
start = datetime.datetime.now()
end = start + datetime.timedelta(minutes = 25)
if start == end:
    end = end + datetime.timedelta(minutes = 25)
4

2 回答 2

2

正如 CharlesB 所建议的,开始变量没有更新。您需要在要执行测试时获取当前值。

重写这一行:

if start == end:

if datetime.datetime.now() > end:

编辑 Tommo 发表评论后,我认为另一种解决方案可能更容易。

import time
while True:
    putMessageToScreen()
    time.sleep(25*60)
于 2012-09-12T06:40:28.483 回答
0

如果您希望在后续引用中更改值,则需要使用函数调用,而不是存储变量。

datetime.datetime原则上,您可以通过子类化和定义__add__重新计算的方法来使上述代码执行您想要的操作datetime.datetime.now(),但这不是一个好主意。

于 2012-09-12T06:48:32.910 回答