पायथन कोडिंग मानकों / सर्वोत्तम प्रथाओं [बंद]


116

अजगर में आप आमतौर पर अपने कोडिंग मानकों / दिशा-निर्देशों के रूप में अजगर कोड के लिए PEP 8 - स्टाइल गाइड का उपयोग करते हैं ? क्या कोई अन्य औपचारिक मानक हैं जो आप पसंद करते हैं?


1
//, "दर्शकों की वरीयताओं" का आग्रह पहले की तुलना में हानिरहित लग सकता है, लेकिन यह स्टैकओवरफ़्लो को एक मतदान तंत्र में बदल देता है, कई के खिलाफ कुछ का विकृत लोकतंत्र। "क्या कोई अन्य ________ है जिसे आप पसंद करते हैं?" वस्तुतः, उन्हें एक वरीयता के लिए पूछना, एक तथ्य नहीं है।
नाथन बसानी

जवाबों:


150

"अजगर में आप आमतौर पर अपने कोडिंग मानकों / दिशानिर्देशों के रूप में अजगर कोड के लिए PEP 8 - स्टाइल गाइड का उपयोग करते हैं? क्या कोई अन्य औपचारिक मानक हैं जो आप पसंद करते हैं?"

जैसा कि आप ने उल्लेख किया है कि मुख्य पाठ के लिए PEP 8 , और docstring सम्मेलनों के लिए PEP 257 का अनुसरण करें

पायथन स्टाइल गाइड के साथ, मेरा सुझाव है कि आप निम्नलिखित का उल्लेख करें:

  1. एक अजगर की तरह कोड: मुहावरेदार पायथन
  2. सामान्य गलतियाँ और मौसा
  3. पायथन कोड कैसे न लिखें
  4. पायथन गच्चा

14

मैं रॉब नाइट द्वारा पायथन मुहावरों और दक्षता दिशानिर्देशों का पालन करता हूं । मुझे लगता है कि वे पीईपी 8 के बिल्कुल समान हैं, लेकिन अधिक सिंथेटिक हैं और उदाहरणों पर आधारित हैं।

यदि आप wxPython का उपयोग कर रहे हैं, तो आप क्रिस Barker द्वारा, साथ ही साथ wxPython कोड के लिए स्टाइल गाइड की जांच करना चाहते हैं ।


8

मैं बहुत बारीकी से PEP-8 से चिपकता हूं।

तीन विशिष्ट चीजें हैं जिन्हें मैं पीईपी -8 में बदलने के लिए परेशान नहीं किया जा सकता।

  • कोष्ठक, कोष्ठक या ब्रेस के अंदर तुरंत बाहर के व्हाट्सएप से बचें।

    सुझाव दिया: spam(ham[1], {eggs: 2})

    मैं यह वैसे भी करता हूं: spam( ham[ 1 ], { eggs: 2 } )

    क्यों? 30+ साल की निगली हुई आदत, फ़ंक्शन नाम या (सी) स्टेटमेंट कीवर्ड्स के खिलाफ है। 70 के दशक में फोरट्रान IV से शुरू।

  • अंकगणित ऑपरेटरों के आसपास रिक्त स्थान का उपयोग करें:

    सुझाव दिया: x = x * 2 - 1

    मैं यह वैसे भी करता हूं: x= x * 2 - 1

    क्यों? ग्रिज के विज्ञान के प्रोग्रामिंग ने इसे असाइनमेंट और वैरिएबल के बीच के कनेक्शन पर जोर देने का एक तरीका बताया।

    यह कई असाइनमेंट या संवर्धित असाइनमेंट के लिए अच्छी तरह से काम नहीं करता है, इसके लिए मैं बहुत सारे रिक्त स्थान का उपयोग करता हूं।

  • फ़ंक्शन नामों के लिए, विधि नाम और उदाहरण चर नाम

    सुझाव: लोअरकेस, पठनीयता में सुधार के लिए आवश्यक के रूप में अंडरस्कोर द्वारा अलग किए गए शब्दों के साथ।

    मैं यह वैसे भी करता हूं: ऊंट

    क्यों? 20+ वर्ष कैमलकेस की घनीभूत आदत, 80 के दशक में पास्कल के साथ शुरू हुआ।


1
यह महान सामग्री है! codingstyleguide.com या codereview.stackexchange.com इस महान दिशा निर्देशों के लिए एक अच्छी जगह होगी।
पोम्पेयो

5

पीईपी 8 अच्छा है, केवल एक चीज जो मैं चाहता हूं कि यह टैब्स-बनाम-स्पेसेस पवित्र युद्ध पर अधिक कठिन था।

मूल रूप से यदि आप अजगर में एक परियोजना शुरू कर रहे हैं, तो आपको टैब या स्पेस चुनने की जरूरत है और फिर सभी अपराधियों को देखते हुए गोली मार दें।


4
टैब या रिक्त स्थान? PEP8 से: रिक्त स्थान पसंदीदा इंडेंटेशन विधि है। टैब्स को केवल उस कोड के अनुरूप रहने के लिए उपयोग किया जाना चाहिए जो पहले से ही टैब के साथ इंडेंट है।
डेमज़

//, PEP8 बहुत स्पष्ट है कि रिक्त स्थान पसंदीदा इंडेंटेशन विधि, रयान हैं। Downvoted। हालांकि, उत्तर का अद्यतन करेगा?
नाथन बासानी

5

मुहावरेदार गाइड की भद्रा की सूची में जोड़ने के लिए :

प्रभावी पायथन प्रोग्रामिंग (OSON 2005 से) पर चेकआउट एंथोनी बैक्सटर की प्रस्तुति ।

अंश:

# dict's setdefault method turns this:
if key in dictobj:
    dictobj[key].append(val)
else:
    dictobj[key] = [val]
# into this:
dictobj.setdefault(key,[]).append(val)

4

मैं इसका कठोरता से पालन करता हूं। PEP-8 से पहले एकमात्र ईश्वर मौजूदा कोड आधार है।


1
और मैं नोट करूंगा कि PEP-8 यहां तक ​​कि मौजूदा कोड बेस को भी ध्यान में रखता है।
जॉन मुल्डर

2

हां, मैं इसका यथासंभव अनुसरण करने की कोशिश करता हूं।

मैं किसी अन्य कोडिंग मानकों का पालन नहीं करता।


1

मैं PEP8 का पालन करता हूं, यह कोडिंग शैली का एक बड़ा टुकड़ा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.