Maison >base de données >tutoriel mysql >Pourquoi Flake8 s'oppose-t-il aux comparaisons booléennes dans les filtres SQLAlchemy et comment puis-je y remédier ?
Les linters de code déclenchent souvent des avertissements pour promouvoir les meilleures pratiques en matière de programmation. L'un de ces avertissements est le E712 de flake8, qui signale les comparaisons booléennes en utilisant "==" dans les clauses de filtre. Cet article explore le problème et propose d'autres moyens d'exprimer des conditions booléennes dans les requêtes SQLAlchemy.
Comme illustré dans l'extrait de code fourni, flake8 met en garde contre des expressions telles que "TestCase.obsoleted == False" dans les clauses de filtre. Selon flake8, ces comparaisons doivent être écrites sous la forme "if cond is False:" ou "if not cond:".
Cependant, le code fourni fonctionne comme prévu malgré l'avertissement. En effet, les filtres SQLAlchemy constituent une exception à la règle générale. Dans ce contexte, "==" est un moyen acceptable de comparer les champs booléens.
Bien que "==" soit acceptable dans les filtres SQLAlchemy, il est recommandé utiliser des approches alternatives qui correspondent aux meilleures pratiques. Deux solutions sont :
from sqlalchemy.sql.expression import false TestCase.obsoleted == false()
Cette approche répond non seulement aux préoccupations de flake8, mais garantit également la compatibilité avec différents dialectes SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!