首頁 >資料庫 >mysql教程 >如何在 Python 中正確地對 SQLAlchemy 查詢的布林值進行等同?

如何在 Python 中正確地對 SQLAlchemy 查詢的布林值進行等同?

Patricia Arquette
Patricia Arquette原創
2024-10-27 03:18:30475瀏覽

 How to Properly Equate Booleans in Python for SQLAlchemy Queries?

Python 中的布林值相等:解決Flake8 警告

在Python 中,在過濾器中使用時,將布林值與「 ==」進行比較可能會觸發flake8 警告SQLAlchemy 查詢的子句。具體來說,會引發警告「E712:與 False 的比較應該是『if cond is False:』或『if not cond:』」。

要解決此問題,可以採用三種可能的方法:

  • 使用# noqa 抑制警告: 在有問題的行中加入# 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn