पायथन की टिप्पणियों में '# नॉका' का क्या अर्थ है?


162

पायथन परियोजना के माध्यम से खोज करते हुए, मुझे कुछ पंक्तियाँ मिलीं जिनके साथ टिप्पणी की गई थी # noqa

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

noqaअजगर में क्या मतलब है? क्या यह केवल पायथन के लिए विशिष्ट है?


3
noqaसबसे अधिक संभावना है no quality assurance। यह चेतावनियों को नजरअंदाज करने के लिए कोड-विश्लेषण सॉफ्टवेयर बताता है।
स्टेवोइसक


मेरे सिर में यह हमेशा "कोई सवाल नहीं पूछा" के रूप में पढ़ता है
थ्रू

जवाबों:


198

# noqaएक पंक्ति में जोड़ना इंगित करता है कि लिंटर (एक प्रोग्राम जो स्वचालित रूप से कोड गुणवत्ता की जांच करता है) को इस रेखा की जांच नहीं करनी चाहिए। कोड द्वारा उत्पन्न किसी भी चेतावनी को अनदेखा किया जाएगा।

उस पंक्ति में कुछ ऐसा हो सकता है जो लिंटर को "बुरा लग रहा है", लेकिन डेवलपर समझता है और इसे किसी कारण से होने का इरादा रखता है।

अधिक जानकारी के लिए, उल्लंघन का चयन करने और अनदेखा करने के लिए Flake8 प्रलेखन देखें ।


3
अजगर लिंटर्स के लिए, यह आमतौर पर यह कथन है, लेकिन अन्य लिंटर के लिए यह अलग हो सकता है, अर्थात जावास्क्रिप्ट w / jshint है: // jshint ignore:line( jshint.com/docs )
jimf

7
यह PyCharm में भी काम करता है। संक्षिप्त रूप सामान्य # noqa। या # noinspection PyUnresolvedReferencesउदाहरण के लिए लंबे रूप विशिष्ट ।
बॉब स्टीन

कैसे के बारे में # noqa F0001?
Youkaichao

5
ध्यान दें कि pycodestyle / pep8 के लिए # nopep8भी इस्तेमाल किया जा सकता है जो कि थोड़ा साफ है, imo है।
OozeMeister

53

noqa = NO-QA (कोई गुणवत्ता आश्वासन)

PEP8 चेतावनियों की अनदेखी करने के लिए इसे आमतौर पर पायथन प्रोग्रामिंग में संदर्भित किया जाता है ।

सरल शब्दों में, अंत में # बेनका होने वाली रेखाओं को लाइनर कार्यक्रमों द्वारा अनदेखा किया जाएगा और वे कोई चेतावनी नहीं उठाएंगे।


15

आपको पता है कि? यहां तक ​​कि गुइडो वैन रोसुम (पायथन के निर्माता) ने पहले यह सवाल पूछा था : डी

थोड़ा व्युत्पत्ति की# noqa :

यह "nopep8" हुआ करता था, लेकिन जब Flake8 और Pep8 एक सामान्य क्वालिफायर चाहते थे @florentx ने "NoQA" को "नो क्वालिटी एश्योरेंस" (iirc) के रूप में सुझाया और यह अटक गया।

कुछ बुनियादी उपयोगों के# noqa (साथ flake8 ):

  • # flake8: noqa: इस लाइन में मौजूद फाइलें स्किप हो जाती हैं
  • ऐसी लाइनें जिनमें अंत में एक # noqaटिप्पणी है : चेतावनी जारी नहीं करेंगी
  • # noqa: <error>, उदाहरण के लिए, # noqa: E234 अंत में : एक पंक्ति में विशिष्ट त्रुटियों को अनदेखा करें
    • कई त्रुटि कोड दिए जा सकते हैं, अल्पविराम द्वारा अलग किए गए
    • कोड की सूची से पहले कोलन की आवश्यकता होती है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.