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
請注意,使用(用戶)< 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
我相當肯定我失去了理智,錯過了一個錯字或其他的東西,所以如果是這樣的話,我很抱歉,但我很難過。
是否有可能'用法'不總是返回相同的值?也許調用一次,並在日誌記錄和if語句中使用該值,而不是調用它兩次。 – GP89 2013-04-22 10:51:53
你的'if'陳述很好,值不能是你想象的那樣。 – interjay 2013-04-22 10:55:19
這是非常不可能的,因爲它是冪等的,但是因爲我在我的繫繩的末尾,我會給它一個旋轉:D – DanH 2013-04-22 10:55:47