程式碼檢查器經常發出警告以促進程式設計中的最佳實踐。 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中文網其他相關文章!