コード リンターは、プログラミングのベスト プラクティスを促進するために警告を発することがよくあります。そのような警告の 1 つは flake8 の E712 で、フィルター句で「==」を使用したブール比較にフラグを立てます。この記事ではこの問題を調査し、SQLAlchemy クエリでブール条件を表現する別の方法を提供します。
提供されたコード スニペットに示されているように、flake8 は「TestCase.obsoleted ==」のような式に対して警告します。フィルター句に「False」を指定します。 flake8 によると、これらの比較は「if cond is False:」または「if not cond:」として記述する必要があります。
ただし、提供されたコードは意図したとおりに機能します。警告にもかかわらず。これは、SQLAlchemy フィルターが一般規則の例外であるためです。このコンテキストでは、ブール型フィールドを比較するには「==」が許容されます。
SQLAlchemy フィルターでは「==」が許容されますが、推奨されます。ベストプラクティスに沿った代替アプローチを使用すること。 2 つの解決策は次のとおりです:
from sqlalchemy.sql.expression import false TestCase.obsoleted == false()
このアプローチは、flake8 の問題に対処するだけでなく、さまざまな SQL 言語との互換性も保証します。
以上がFlake8 が SQLAlchemy フィルターのブール値比較に反対するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。