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

时间:2018-06-13 11:52:29

标签: python django python-3.x if-statement django-rest-framework

我尝试管理Django中的条件。

它正常工作但在尝试使用flake8时出错 flake8 data/view.py

我的条件是这样的:

if user.item.purchase.status == True:

此处user, item and purchase is model和状态是购买领域。 和状态有三个值1)Undefine 2)True 3)False

  

我做错了什么?

Flake8错误E712 comparison to True should be 'if cond is True:' or 'if cond:'

提前致谢

3 个答案:

答案 0 :(得分:2)

错误消息提示您使用此语法。

if user.item.purchase.status:
    #Do Stuff

您无需提及== True

答案 1 :(得分:2)

如果$(document).ready(function () { if($('input[name="st-related_products-attribution_type"]:checked').val() != 'custom') { $('.sets-details').hide(); } $('input[name="st-related_products-attribution_type"]').change(function() { if($(this).val() == 'custom') { $('.sets-details').show(); } else { $('.sets-details').hide(); } }); $('.bundle-atc-switcher').click(function(){ if ($('.bundle-atc-switcher').val() == 1 ) { $('.bundle-atc-display').prop('disabled', 'disabled'); } else { $('.bundle-atc-display').prop('disabled',false); } }); }); 布尔,那么编写status会很奇怪,因为expr == TrueTrue == True,而{{{} 1}}是True,我们可以简单地写False == True

如果另一方面False本身本身就是布尔,那么比较将尝试检查对象值等于expr,它可以是不同的,但通常一些对象等于statusTrue是“奇怪的”。例如True成立,但False1 == True不同的对象。

如果1可以是非布尔值,并且您想要检查状态是否真的 True(那么值< / em>相等,但引用相等),然后可以使用status检查,因为True检查两个变量是否引用相同对象。

如果您将表达式编写为条件,如is,则Python会评估该表达式的真实性。例如,非空列表的真实性是exp1 is exp2,而对于空集合,它通常是if expr。由于TrueFalse的真实性分别为TrueFalse,因此在这种情况下无需编写True

我认为这里False可能是== True,所以在这种情况下你可以写:

status

答案 2 :(得分:-3)

使用“is”代替“==”