2008-12-10 9 views
108

पायथन में आप आमतौर पर PEP 8 -- Style Guide for Python Code का उपयोग अपने कोडिंग मानकों/दिशानिर्देशों के रूप में करते हैं? क्या आप कोई अन्य औपचारिक मानकों को पसंद करते हैं?पायथन कोडिंग मानकों/सर्वोत्तम प्रथाओं

+1

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

उत्तर

142

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

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

अजगर शैली गाइड के साथ साथ के लिए, मेरा सुझाव है कि आप निम्नलिखित देखें:

  1. Code Like a Pythonista: Idiomatic Python
  2. Common mistakes and Warts
  3. How not to write Python code
  4. Python gotcha
1

हां, मैं इसे यथासंभव निकट से पालन करने का प्रयास करता हूं।

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

3

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

+1

और मुझे लगता है कि पीईपी -8 भी मौजूदा कोड बेस को ध्यान में रखता है। –

14

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

यदि आप wxPython का उपयोग कर रहे हैं तो आप क्रिस बार्कर द्वारा Style Guide for wxPython code भी जांचना चाहेंगे।

4

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

असल में यदि आप अजगर में एक प्रोजेक्ट शुरू कर रहे हैं, तो आपको टैब या स्पेस चुनना होगा और फिर सभी अपराधियों को दृष्टि पर शूट करना होगा। (OSON 2005 से) Effective Python Programming पर

चेकआउट एंथोनी बैक्सटर की प्रस्तुति:

+4

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

+0

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

5

मुहावरेदार गाइडों की bhadra'slist में जोड़ने के लिए।

एक अंश:

# 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) 
8

मैं पीईपी-8 के लिए बहुत बारीकी से चिपके रहते हैं।

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

  • ब्रांड्स, ब्रैकेट या ब्रेसिज़ के अंदर तत्काल सफेद जगह से बचें।

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

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

    क्यों?30+ वर्ष की आदत वाली आदत फ़ंक्शन नामों के विरुद्ध या (सी में) कथन कीवर्ड के खिलाफ snuggling() है। 70 के दशक में फोर्ट्रान चतुर्थ से शुरू

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

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

    मैं इस वैसे भी कार्य करें: x= x * 2 - 1

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

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

  • समारोह के नाम, विधि के नाम और उदाहरण चर नाम

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

    मैं इसे वैसे भी करता हूं: camelCase

    क्यों? 80 के दशक में पास्कल से शुरू होने वाले ऊंट के 20+ साल की आदत की आदत।

+1

यह बहुत अच्छी सामग्री है! http://codingstyleguide.com या http://codereview.stackexchange.com इस महान दिशानिर्देश रखने के लिए एक अच्छी जगह होगी। – Pompeyo

1

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

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