2010-07-28 17 views
13

एक दोस्त ने मुझे पिलिंट के बारे में बताया और जिज्ञासा से बाहर, मैंने इसे कुछ मानक लाइब्रेरी मॉड्यूल के खिलाफ चलाया। मेरे आश्चर्य के लिए, रेटिंग कम थी। यहाँ कुछ रन हैं:पायथन मानक लाइब्रेरी कोड की कम पिलिंट रेटिंग के कारण

os.py 
Your code has been rated at 3.55/10 

random.py 
Your code has been rated at 4.74/10 

मैं कुछ और अधिक मॉड्यूल पर भाग गया और रेटिंग पाया जा करने के लिए ~ 6 - 7

मैं इस के पीछे कारण सोच रहा था? क्या पिलिंट टूट गया है या रेटिंग के लिए और अधिक कारक हैं जिनसे मुझे पता है? मैं इस सवाल से विशेष रूप से पूछ रहा हूं क्योंकि मैं पाइथन के लिए नया हूं और मेरी कोडिंग शैली में सुधार करने में मेरी मदद करने के लिए पिलिंट पर निर्भर था :)

उत्तर

12

पिलिंट के डिफ़ॉल्ट काफी सख्त हैं, और उन चीजों के बारे में शिकायत करते हैं जिन्हें वे नहीं करना चाहिए। उदाहरण के लिए, यदि आप foo(**kwargs) का उपयोग करते हैं, तो आपको "जादू" का उपयोग करने के बारे में एक संदेश मिलता है। कभी-कभी ऐसा लगता है जैसे पिलिंट जावा प्रोग्रामर के दृष्टिकोण से पाइथन को देख रहा है।

आपको विशिष्ट संदेशों को देखना होगा और यह तय करना होगा कि आप उनके साथ सहमत हैं या नहीं।

अन्य समस्याओं में प्लेटफार्म-विशिष्ट सशर्त करने में सक्षम नहीं है। Os.py में, यह शिकायत करता है:

F:119: Unable to import 'riscos' 
+0

आह मैं देखता हूं। मैंने रिपोर्टों को गहराई से नहीं देखा है, मैं सहमत हूं। यह रेटिंग थी जो मुझे आश्चर्यचकित कर रही थी! – Joshua

6

पिलिंट stdlib के बाद लंबे समय से लिखा गया था। और stdlib उदाहरण के लिए सख्त नामकरण सम्मेलनों का पालन नहीं करता है (पीईपी008 हाल ही में, wrt पायथन) है। हो रही "अच्छा" pylint रेटिंग के लिए महत्वपूर्ण कारक हैं:

  • सुनिश्चित करें कि आपके कोड लेखन शैली क्या Pylint (अपनी शैली/सम्मेलनों मिलान करने के लिए या धुन Pylint) उम्मीद कर रही है के अनुरूप है या नहीं। इसमें फ़ंक्शन, वैरिएबल, क्लास, विधि नाम, विभिन्न स्थानों पर रिक्त स्थान इत्यादि शामिल हैं।

  • पाइथन कोड को सुविधाजनक तरीके से स्थिर रूप में लिखें, और गतिशील चाल से बचें।

  • लिखने docstrings

जाहिर है, मानक पुस्तकालय मॉड्यूल की Pylint की रेटिंग अनुकूलन करने के लिए लिखा है।

पिलिंट का उपयोग करने से आपकी "कोडिंग शैली" में सुधार नहीं होगा। हालांकि यह कई मामलों में आपके कोड को समझने में अधिक आसान बना देगा, कभी-कभी कुछ "पाइथोनिसिटी" की लागत पर।

+0

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

संबंधित मुद्दे