我尝试管理Django中的条件。
它工作正常,但尝试使用flake8时出现错误 flake8 data/view.py
我的情况是这样的:
if user.item.purchase.status == True:
这里的user, item and purchase is model
状态是购买的领域。和Status具有三个值1)不确定2)正确3)错误
我做错了吗?
Flake8错误 E712 comparison to True should be 'if cond is True:' or 'if cond:'
提前致谢
好吧,如果status
是boolean,那么写是很奇怪的expr == True
,因为True == True
isTrue
和False == True
is是False
,我们可以简单地写expr
。
如果在另一方面status
的东西是不是本身一个布尔值,则比较会尝试检查对象值等于到True
,它可以是不同的,但通常它是“奇怪”的,有些对象是等于True
或False
。例如1 == True
成立,但1
并True
是不同的对象。
如果情况status
可能是非布尔值,并且您想检查状态是否真的 是True
(不是值相等,而是引用相等),则is
可以使用exp1 is exp2
检查,因为检查两个变量是否引用相同目的。
但是,如果您将表达式写为条件,例如if expr
,则Python会评估该表达式的真实性。例如,非空列表的真实性为True
,而对于空集合,其通常为False
。由于的感实性True
和False
是True
和False
分别有因而没有必要写== True
在这种情况下。
我认为这里status
可能是一个BooleanField
,因此在这种情况下,您可以编写:
if user.item.purchase.status:
# ...
pass
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句