7

2 つの相対デルタ間で「>」比較を実行しようとしています。

if(relativedelta(current_date, last_activity_date) > relativedelta(minutes=15)):

Eclipse のデバッガー ウィンドウからの出力は次のとおりです。

デバッグ ウィンドウ

相対デルタの 1 つはわずか 15 分で、他のものよりはるかに小さいです。この比較が false を返し、期待どおり true ではないのはなぜですか? より良い解決策は何ですか?

4

1 に答える 1

9

dateutil.relativedelta賢明に実装されていない__cmp__ため、インスタンスを比較できません。この問題には未解決のバグがあります。29日と1か月のどちらが大きいかを言うのは意味がなく、したがってすべてがPythonのデフォルトの比較に頼るという議論は、私には少し薄っぺらに思えますが、それは単なる意見です.

実際に何をしているかによっては、 を使用datetime.timedeltaする方がより良い解決策になる場合があります。

于 2012-07-28T20:25:39.773 に答える