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が示唆しているように、開始変数は更新されません。テストを実行するときに、now値を取得する必要があります。

行を書き直します:

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 に答える