【发布时间】:2011-09-23 23:13:41
【问题描述】:
在我发现代码中的错误之前,我有些困惑。我不得不改变
a.matched_images.count #True when variable is 0
到
a.matched_images.count > 0 #False when variable is 0
因为我很快想知道一个对象是否有任何图像,所以第一个代码将显示为照片有图像,因为当含义真的为假时,表达式计算为 True(“无图像”/0 个图像)
我是否正确理解了这一点,如果这些表达式应该计算为不同的值,请您回答或评论。
【问题讨论】:
-
如果 a.matched_images.count 是 int 0,那么它应该评估为 False。您可以在该行之前插入一个打印类型(a.matched_images.count)命令吗?可能是一种方法?
-
整数表达式一般为
True,如果非零,则为False,否则。假设a.matched_images.count是一个整数,如果值为负数,则两者的结果将不同。 -
计数的数量是内置在环境中的(google app eninge + django),我相信当两个模型之间存在引用属性时,它是一个集合匹配数的 django 变量。是的,这可能是一种方法。感谢 cmets。
-
感谢您的信息。我还在考虑语句
if isHuman和if isHuman == True之间的区别,如果变量只是设置为 None 或未启动,第一个评估的结果可能并不明显。因此,我认为最好使用更多默认值和语义默认值(应该避免使用可以具有三个值的布尔值) -
@Nicklas R:“这可能是一种方法”?? “我不知道它是'0'还是0”??是什么阻止您发现它是什么?
标签: python if-statement