我在mysql數據庫表中有一個布爾型字段。flake8抱怨過濾器子句中的布爾比較「==」
# 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應該是 「如果cond爲假:」 或 「如果不是 COND:」
好的,我認爲這是有道理的。所以,我的代碼改成這樣:
caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()
或
caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()
但他們都沒有能正常工作。結果始終爲0. 我認爲filter子句不支持運算符「is」或「is not」。有人會告訴我如何處理這種情況。我不想停用片狀物。
[PEP 8](http://www.python.org/dev/peps/pep-0008/#programming-recommendations)特別建議*反對*「如果cond爲False」。我很驚訝,[pep8工具](http://pep8.readthedocs.org/en/latest/intro.html)恰恰相反。 –