Python yorumlarında '# noqa' ne anlama geliyor?


162

Bir Python projesinde arama yaparken yorum yapılan birkaç satır buldum # noqa.

import sys
sys.path.append(r'C:\dev')
import some_module   # noqa

noqaPython'da ne anlama geliyor? Sadece Python'a özgü mü?


3
noqabüyük olasılıkla no quality assurance. Kod analizi yazılımına uyarıları yoksaymasını söyler.
Stevoisiak


Kafamda hep "hayır sorulan sorular" olarak okur
thrau

Yanıtlar:


198

# noqaBir satıra ekleme , linterın (kod kalitesini otomatik olarak kontrol eden bir program) bu satırı kontrol etmemesi gerektiğini gösterir. Kodun oluşturmuş olabileceği tüm uyarılar yok sayılır.

Bu çizgi, linter için "kötü görünen" bir şeye sahip olabilir, ancak geliştirici bunu bir nedenden ötürü anlar ve orada olmayı niyet eder.

Daha fazla bilgi için İhlalleri Seçme ve Yok Sayma hakkında Flake8 belgelerine bakın .


3
piton linterlerinin için, genellikle bu ifade ama / jshint w diğer linter için, yani JavaScript farklı olabilir: // jshint ignore:line( jshint.com/docs )
jimf

7
PyCharm'da da çalışır. Kısa biçim jenerik # noqa. Ya da # noinspection PyUnresolvedReferencesörneğin belirli uzun bir form .
Bob Stein

Nasıl # noqa F0001?
youkaichao

5
Pycodestyle / pep8 # nopep8için de biraz daha açık, imo kullanılabilir.
OozeMeister

53

noqa = NO-QA (Kalite Güvencesi YOK)

Genel olarak PEP8 uyarılarını dikkate almamak için Python Programlama'da kullanılır .

Basit bir deyişle, sonunda #noqa içeren satırlar linter programları tarafından yok sayılır ve herhangi bir uyarı oluşturmazlar.


15

Biliyor musun? Hatta Guido van Rossum (Python'un yaratıcısı) bu soruyu daha önce sordu : D

Bir bit Etimolojiyi ait# noqa :

Eskiden "nopep8" idi ama Flake8 ve Pep8 ortak bir niteleyici istediğinde @florentx "NoQA" yı "Kalite Güvencesi Yok" (iirc) gibi önerdi ve sıkıştı.

Bazı temel kullanım alanları# noqa ( flake8 ile ):

  • # flake8: noqa: bu satırı içeren dosyalar atlanır
  • sonunda# noqa yorum içeren satırlar : uyarı vermeyecek
  • # noqa: <error>, örneğin, # noqa: E234 sonunda : bir satırdaki belirli hataları yoksay
    • virgülle ayrılmış birden fazla hata kodu verilebilir
    • kod listesinden önceki iki nokta üst üste
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.