我尝试管理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:'
提前致谢
答案 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 == True
是True == True
,而{{{} 1}}是True
,我们可以简单地写False == True
。
如果另一方面False
本身不本身就是布尔,那么比较将尝试检查对象值等于到expr
,它可以是不同的,但通常一些对象等于status
或True
是“奇怪的”。例如True
成立,但False
和1 == True
是不同的对象。
如果1
可以是非布尔值,并且您想要检查状态是否真的 True
(那么值< / em>相等,但引用相等),然后可以使用status
检查,因为True
检查两个变量是否引用相同对象。
如果您将表达式编写为条件,如is
,则Python会评估该表达式的真实性。例如,非空列表的真实性是exp1 is exp2
,而对于空集合,它通常是if expr
。由于True
和False
的真实性分别为True
和False
,因此在这种情况下无需编写True
。
我认为这里False
可能是== True
,所以在这种情况下你可以写:
status
答案 2 :(得分:-3)
使用“is”代替“==”