django中的Flake8错误`E712与True的比较应为'如果cond为True:'或'如果cond:'`

辛格先生

我尝试管理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:'

提前致谢

威廉·范昂塞姆

好吧,如果statusboolean,那么写是很奇怪的expr == True,因为True == TrueisTrueFalse == Trueis是False,我们可以简单地写expr

如果在另一方面status的东西是不是本身一个布尔值,则比较会尝试检查对象值等于True,它可以是不同的,但通常它是“奇怪”的,有些对象是等于TrueFalse例如1 == True成立,但1True不同的对象。

如果情况status可能是非布尔值,并且您想检查状态是否真的 True(不是相等,而是引用相等),则is可以使用exp1 is exp2检查,因为检查两个变量是否引用相同目的。

但是,如果您将表达式写为条件,例如if expr,则Python会评估该表达式真实性例如,非空列表的真实性为True,而对于空集合,其通常为False由于的感实性TrueFalseTrueFalse分别有因而没有必要写== True在这种情况下。

我认为这里status可能是一个BooleanField,因此在这种情况下,您可以编写:

if user.item.purchase.status:
    # ...
    pass

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何修复plates 8错误pandas dataframe中的“ E712与False的比较应该是'如果cond为False:'或'如果不是cond:'”

pyparsing如何使用infixNotation表示iif(cond,如果为true,如果为false)

Clojure cond还是如果?

如果使用REGEX_COND,则存在使用错误

如果在Mata中cond则替换x

“如果 cond1 或 cond2”语句未在 Python 中运行第二个条件

如果 Tensorflow 中的 tf.cond 检查失败,如何停止图形执行或更改控制流?

为什么 any(True for ... if cond) 比 any(cond for ...) 快得多?

如果值为true,请显示表格

如果为true,则显示php数组项

如果键的值为true,则过滤字典

如果NIC DNS为true,则写入Regkey

Python“ if”语句-如果xpath为true

如果多个IF语句为true,则更新

如果语句为true,则修改几列

如果条件+检查notull()为true

如果else语句被跳过,即使为true

如果'this'类为true,则禁用按钮

如果变量在foreach循环内为true

硒如果参数为true,则单击按钮

对于每个如果为true的mysqli结果

python如何“取反”值:如果为true,则返回false,如果为false,则返回true

如果不是true(!true)

C ++,如果命令为true,尽管为false

如果字段存在必须为true,但如果不存在则必须通过true

如果条件在codeigniter中为true,则禁用<a>标记

如果为true,则在新屏幕中运行脚本

如果@Input在angular中为true,如何应用类

如果Haml中的条件为true,则追加类