Python If和语句等于True,但应为False
因此,我有以下代码:Python If和语句等于True,但应为False,python,django,Python,Django,因此,我有以下代码: if old_size < new_size and date_exceeded and usage(user) < new_size: unset_date_exceeded() 请注意,usage(user)>>nS=536870912 >>>用法=908811325 >>>dE=“2013-04-22 10:27:08+00:00” >>>oS
if old_size < new_size and date_exceeded and usage(user) < new_size:
unset_date_exceeded()
请注意,usage(user)False
,但由于某些原因,结果不是这样的
我想也许我不明白和是如何工作的,但是如果我在python shell中尝试这个,我就无法复制它,而是得到预期的结果:
>>> oS= 262144000
>>> nS= 536870912
>>> usage= 908811325
>>> dE="2013-04-22 10:27:08+00:00"
>>> oS < nS and dE and usage < nS
False
操作系统=262144000
>>>nS=536870912
>>>用法=908811325
>>>dE=“2013-04-22 10:27:08+00:00”
>>>oS
我很确定我正在失去理智,错过了一个打字错误或什么的,如果是这样的话,我很抱歉,但我被难倒了。我怀疑你在尝试比较不同的类型(这是允许的,但意义有点无意义)
如果您尝试:
print map(type, (old_size, new_size, date_exceeded, usage(user)))
然后从这里开始…我怀疑您试图比较不同的类型(这是允许的,但意义有些毫无意义)
如果您尝试:
print map(type, (old_size, new_size, date_exceeded, usage(user)))
然后从那里开始…是否有可能用法
不总是返回相同的值?可能只调用一次,然后在日志记录和if语句中使用该值,而不是调用两次。您的if
语句很好,这些值不能是您认为的值。这不太可能,因为它是幂等的,但因为我已经穷途末路了,我来试一试:在你的测试中你使用用法
,但在你的代码中你使用用法(用户)
。那只是为了演示?或者usage(user)
是否返回了一些不同的值在您的程序中,您是否可以打印地图(类型,(旧大小、新大小、超出日期、usage(user))
(只是为了确保它肯定不是某个地方的类型错误)是否可能usage
不总是返回相同的值?可能只调用一次,然后在日志记录和if语句中使用该值,而不是调用两次。您的if
语句很好,这些值不能是您认为的值。这不太可能,因为它是幂等的,但因为我已经穷途末路了,我来试一试:在你的测试中你使用用法
,但在你的代码中你使用用法(用户)
。那只是为了演示?或者usage(user)
是否在您的程序中返回一些不同的内容,您是否可以打印地图(类型,(旧大小、新大小、超出日期、usage(user))
(以确保它绝对不是某个地方的类型错误)