Python 中的布尔值相等:解决 Flake8 警告
在 Python 中,在过滤器中使用时,将布尔值与“==”进行比较可能会触发 flake8 警告SQLAlchemy 查询的子句。具体来说,会引发警告“E712:与 False 的比较应该是‘if cond is False:’或‘if not cond:’”。
要解决此问题,可以采用三种可能的方法:
-
使用 # noqa 抑制警告: 在有问题的行添加 # noqa 注释以抑制 flake8 警告。这是最简单的解决方案,但它没有解决根本问题。
-
使用 SQL“IS”表达式: SQLAlchemy 过滤器支持 SQL“IS”表达式。您可以使用“TestCase.obsoleted.is_(False)”来代替“TestCase.obsoleted == False”。这将适用于不同的数据库方言。
-
利用 sqlalchemy.sql.expression.false: 导入“sqlalchemy.sql.expression”并使用“TestCase.obsoleted == sqlalchemy.sql.expression” 。错误的()”。此方法返回特定会话 SQL 方言的正确值。还有一个匹配的“sqlalchemy.expression.true()”。
需要注意的是,虽然在 SQLAlchemy 中将布尔值与过滤子句中的“==”进行比较在技术上是正确的,但它可能会导致其他情况下的混乱。因此,最佳实践是避免在非过滤子句中使用“==”进行布尔比较,以防止潜在问题。
以上是如何在 Python 中正确地对 SQLAlchemy 查询的布尔值进行等同?的详细内容。更多信息请关注PHP中文网其他相关文章!