집 >데이터 베이스 >MySQL 튜토리얼 >Flake8이 SQLAlchemy 필터의 부울 비교에 반대하는 이유는 무엇이며 어떻게 해결할 수 있습니까?
코드 린터는 종종 프로그래밍의 모범 사례를 홍보하기 위해 경고를 표시합니다. 그러한 경고 중 하나는 필터 절에서 "=="를 사용하여 부울 비교에 플래그를 지정하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!