Linter kod sering menimbulkan amaran untuk mempromosikan amalan terbaik dalam pengaturcaraan. Satu amaran sedemikian ialah E712 flake8, yang menandakan perbandingan boolean menggunakan "==" dalam klausa penapis. Artikel ini meneroka isu dan menyediakan cara alternatif untuk menyatakan keadaan boolean dalam pertanyaan SQLAlchemy.
Seperti yang digambarkan dalam coretan kod yang disediakan, flake8 memberi amaran terhadap ungkapan seperti "TestCase.obsoleted == Salah" dalam klausa penapis. Menurut flake8, perbandingan ini harus ditulis sebagai "jika cond adalah Palsu:" atau "jika tidak cond:".
Walau bagaimanapun, kod yang disediakan berfungsi seperti yang dimaksudkan walaupun diberi amaran. Ini kerana penapis SQLAlchemy adalah pengecualian kepada peraturan umum. Dalam konteks ini, "==" ialah cara yang boleh diterima untuk membandingkan medan boolean.
Walaupun "==" boleh diterima dalam penapis SQLAlchemy, ia disyorkan untuk menggunakan pendekatan alternatif yang selaras dengan amalan terbaik. Dua penyelesaian ialah:
from sqlalchemy.sql.expression import false TestCase.obsoleted == false()
Pendekatan ini bukan sahaja menangani kebimbangan flake8 tetapi juga memastikan keserasian dengan dialek SQL yang berbeza.
Atas ialah kandungan terperinci Mengapa Flake8 Membantah Perbandingan Boolean dalam Penapis SQLAlchemy, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!