代码检查器经常发出警告以促进编程中的最佳实践。 flake8 的 E712 就是这样的警告之一,它在过滤子句中使用“==”来标记布尔比较。本文探讨了这个问题,并提供了在 SQLAlchemy 查询中表达布尔条件的替代方法。
如提供的代码片段所示,flake8 针对诸如“TestCase.obsoleted ==”之类的表达式发出警告过滤子句中的“False”。根据 flake8,这些比较应该写为“if cond is False:”或“if not cond:”。
但是,提供的代码按预期工作尽管有警告。这是因为 SQLAlchemy 过滤器是一般规则的例外。在这种情况下,“==”是比较布尔字段的可接受方式。
虽然“==”在 SQLAlchemy 过滤器中是可接受的,但建议使用使用符合最佳实践的替代方法。两种解决方案是:
from sqlalchemy.sql.expression import false TestCase.obsoleted == false()
这种方法不仅解决了 flake8 的问题,还确保了与不同 SQL 方言的兼容性。
以上是为什么 Flake8 反对 SQLAlchemy 过滤器中的布尔比较,以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!