1

だから私は次のコードを持っています:

if old_size < new_size and date_exceeded and usage(user) < new_size:
    unset_date_exceeded()

問題は、値がそうでないことを示唆している場合でも、これが True と評価されることです。

logger.info('oS:%s | nS:%s | dE:%s | usage:%s' % (old_size, new_size, date_exceeded, usage(user)))
# returns oS:262144000 | nS:536870912 | dE:2013-04-22 10:27:08+00:00 | usage:908811325

usage(user) < new_size である必要がありますFalseが、何らかの理由でうまくいかないことに注意してください。

関数の仕組みを理解していないのではないかと思いandましたが、これを python シェルで試してみると、複製できず、代わりに期待される結果が得られます。

>>> oS=         262144000
>>> nS=         536870912
>>> usage=       908811325
>>> dE="2013-04-22 10:27:08+00:00"
>>> oS < nS and dE and usage < nS
False

気が狂ってタイプミスか何かを見落としていると確信しているので、その場合は申し訳ありませんが、困惑しています。

4

1 に答える 1

1

さまざまなタイプを比較しようとしていると思われます(許可されていますが、意味はやや無意味です)...

試してみると:

print map(type, (old_size, new_size, date_exceeded, usage(user)))

そして、そこから...

于 2013-04-22T11:10:32.480 に答える