2010-12-09 12 views
26

पायथन पिनथन कोड के विश्लेषण के लिए एक अच्छा उपकरण की तरह दिखता है। हालांकि, हमारा मुख्य उद्देश्य किसी भी संभावित बग को पकड़ना और कोडिंग सम्मेलन नहीं करना है। सभी पिलिंट चेक को सक्षम करने से बहुत शोर उत्पन्न होता है। आपके द्वारा उपयोग की जाने वाली पाइलिंट सुविधाओं के सेट पर कोई सुझाव और प्रभावी है?पाइलिंट सर्वोत्तम व्यवहार?

उत्तर

10

Pyflakes आपके उद्देश्य को अच्छी तरह से पूरा करना चाहिए।

23

आप किसी भी चेतावनी त्रुटियों आपको पसंद नहीं है, के माध्यम से ब्लॉक कर सकते हैं /:

pylint --disable = [त्रुटि, त्रुटि]

मैं अवरोधित किया है, इन (http://www.logilab.org/card/pylintfeatures

से वर्णन W0511: FIXME या XXX के रूप में चेतावनी नोट का उपयोग किया जाता है

W0142: प्रयुक्त * या * जादू * जब किसी फ़ंक्शन या विधि को तर्कों को प्रेषित करने के लिए * args या ** kwargs का उपयोग करके कॉल किया जाता है। यह पठनीयता में सुधार नहीं करता है और देखभाल के साथ इस्तेमाल किया जाना चाहिए।

W0141: प्रयुक्त बिल्टिन फ़ंक्शन% r जब ब्लैक सूचीबद्ध बिल्टिन फ़ंक्शन का उपयोग किया जाता है (खराब-फ़ंक्शन विकल्प देखें)। सामान्य काले सूचीबद्ध फ़ंक्शंस मानचित्र, या फ़िल्टर जैसे हैं, जहां पाइथन अब सूची समझ जैसे कुछ क्लीनर विकल्प प्रदान करता है।

आर 0 9 12: बहुत सारी शाखाएं (% s /% s) जब किसी फ़ंक्शन या विधि में बहुत सी शाखाएं होती हैं, तो इसका पालन करना मुश्किल हो जाता है।

R0913: फ़ंक्शन या विधि में बहुत अधिक तर्क लेने पर बहुत अधिक तर्क (% s /% s) प्रयुक्त होते हैं।

R0914: फ़ंक्शन या विधि में बहुत से स्थानीय चर होने पर बहुत से स्थानीय चर (% s /% s) प्रयुक्त होते हैं।

R0903: कक्षा में बहुत कम सार्वजनिक विधियों के दौरान उपयोग की जाने वाली बहुत कम सार्वजनिक विधियां (% s /% s), इसलिए सुनिश्चित करें कि यह वास्तव में इसके लायक है।

W0212: क्लाइंट क्लास के संरक्षित सदस्य% s तक पहुंच जब संरक्षित सदस्य (यानी अंडरस्कोर से शुरू होने वाले नाम वाले वर्ग सदस्य) कक्षा के बाहर या कक्षा के वंशज के रूप में उपयोग किया जाता है, जहां इसे परिभाषित किया जाता है।

W0312:% ss के बजाय% ss के साथ इंडेंटेशन मिला जब मॉड्यूल में कुछ मिश्रित टैब और रिक्त स्थान होते हैं।

C0111: मॉड्यूल, फ़ंक्शन, कक्षा या विधि में कोई डॉकस्ट्रिंग नहीं होने पर अनुपलब्ध डॉकस्ट्रिंग। init जैसे कुछ विशेष तरीकों को एक डॉकस्ट्रिंग की आवश्यकता नहीं है।

C0103: अमान्य नाम "% s" (% s से मेल खाना चाहिए) जब नाम अपने प्रकार (स्थिर, चर, वर्ग ...) से जुड़े नियमित अभिव्यक्ति से मेल नहीं खाता है।

+2

विशेष प्रकार के संदेश को अक्षम करने का विवरण सही है, लेकिन मेरा मानना ​​है कि दबाने वाली त्रुटियों के कुछ विशिष्ट विकल्प विवादास्पद हैं। "बहुत सारे स्थानीय चर/शाखाएं" जैसी सामग्री एक विशाल लाल झंडा है। –

+0

'-d, --disable' विकल्प' [] 'वर्णों के साथ एक अजगर सूची नहीं है; यह सिर्फ एक अल्पविराम-सीमित सूची है। तो नहीं '- अक्षम = [सी 0111, आर 0 9 12] '; '--disable = C0111, R0912' का उपयोग करें। – DrStrangepork

7

-E केवल ध्वजांकित करेगा कि क्या पिलिंट सोच एक त्रुटि है (यानी कोई चेतावनी नहीं, कोई सम्मेलन नहीं ...)

8
लगातार अक्षम चेतावनी और सम्मेलनों के लिए

:

  1. pylint --generate-rcfile > ~/.pylintrc
  2. संपादित ~/.pylintrc
  3. टिप्पणी हटाएं disable= चलाकर एक ~/.pylintrc फ़ाइल बनाएँ और disable=W,C
2

है कि लाइन को बदलने की तरह ग्रेप का उपयोग कर :

pylint my_file.py | grep -v "^C" 
संबंधित मुद्दे