【发布时间】:2013-09-25 06:44:56
【问题描述】:
我在 mysql 数据库表中有一个布尔字段。
# table model
class TestCase(Base):
__tablename__ = 'test_cases'
...
obsoleted = Column('obsoleted', Boolean)
要获得所有未过时的测试用例的数量,可以这样简单地完成:
caseNum = session.query(TestCase).filter(TestCase.obsoleted == False).count()
print(caseNum)
效果很好,但 flake8 报告以下警告:
E712: 与 False 的比较应该是“if cond is False:”或“if not 条件:"
好的,我认为这是有道理的。所以把我的代码改成这样:
caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()
或
caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()
但是它们都不能工作。结果始终为 0。 我认为过滤子句不支持运算符“is”或“is not”。有人可以告诉我如何处理这种情况。我不想禁用薄片。
【问题讨论】:
标签: python mysql sqlalchemy flake8