निहित बनाम स्पष्ट पंक्ति में शामिल होने के लिए सिफारिशें


9

मैं के बारे में सिफारिशें जानना चाहूंगा अंतर्निहित लाइन में शामिल होने से बनाम स्पष्ट रेखा में शामिल होने से अजगर में।

विशेष रूप से, क्या आप एक रूप को दूसरे के पक्ष में करते हैं? आप सामान्य डिफ़ॉल्ट के रूप में क्या सलाह देते हैं? एक के ऊपर एक चुनने के लिए आपके पास क्या मानदंड हैं, और यदि आपके पास एक की प्राथमिकता है, तो आप दूसरे के लिए अपवाद कब बनाते हैं?

इस प्रश्न के लिए मेरे मन में एक उत्तर है जो मेरे स्वयं के पूर्वाग्रहों को दर्शाता है, लेकिन इससे पहले कि मैं अपना स्वयं का उत्तर पोस्ट करूं, मैं जानना चाहूंगा कि दूसरे क्या सोचते हैं ... और यदि आपके पास मेरे दिमाग में जो है उससे बेहतर मानदंड हो सकते हैं। तो मैं निश्चित रूप से अपने जवाब अपने दम पर स्वीकार करेंगे।

कुछ सिफारिशों को अन्य प्रोग्रामिंग भाषाओं में इस पसंद के लिए सामान्यीकृत किया जा सकता है, लेकिन मेरे अपने पूर्वाग्रह कुछ भाषा-विशिष्ट विशेषताओं के कारण पायथन में कुछ अधिक मजबूत हैं, इसलिए मैं सामान्य और पायथन-केंद्रित तर्क दोनों जानना चाहूंगा। इस विषय पर

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

यहाँ एक सरल उदाहरण दिया गया है:

join_type = "explicit"
a = "%s line joining" \
    % (join_type)
# versus
join_type = "implicit"
b = ("%s line joining"
     % (join_type))

कोड समीक्षा के लिए सर्वश्रेष्ठ अभ्यास प्रश्न विषय से दूर हैं। मैंने आपके प्रश्न को एक बेहतर स्थल पर भेज दिया है।
विंस्टन एवर्ट

1
@WinstonEwert पोस्ट करने से पहले मैंने कोडरव्यू एफएक्यू और प्रोग्रामर्स एफएक्यू पर एक अच्छा नज़र डाला , और मैंने कोड रीव्यू को चुना क्योंकि यह स्पष्ट रूप से कहता है कि वहाँ पूछने वाले प्रश्नों के प्रकार "आपके कोड में सर्वश्रेष्ठ प्रथाओं और डिज़ाइन पैटर्न का उपयोग" शामिल हैं। मैंने प्रश्न में कोड का एक सरलीकृत संस्करण शामिल किया है, तो यह ऑफ़-टॉपिक कैसे है?
aculich

यदि आप इस पर टिप्पणी करना चाहते हैं तो @instonEwert ने मेटा में एक प्रश्न पोस्ट कोडेव्यू FAQ को स्पष्ट करने के बारे में पोस्ट किया है ।
एसुलिच

जवाबों:


8

PEP8 नामक एक कोडिंग स्टाइल दस्तावेज़ है। यह \<NL>जहाँ भी कोष्ठक का उपयोग किया जा सकता है, उसके उपयोग के खिलाफ अनुशंसा करता है।

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

पूरा पाठ: http://www.python.org/dev/peps/pep-0008/ (अनुभाग कोड लेआउट)

यह अनिवार्य नहीं है लेकिन यह स्वीकार्य अच्छी प्रथाओं को परिभाषित करता है जो विशेष रूप से उपयोगी हैं यदि आपके पास आपकी टीम पर कई पायथन कमिटर्स हैं।


1

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


0

वर्तमान में, मैं पसंद करूंगा

join_type = "kiding"
a = "%s line joining" % (join_type)

B-))

मैं एक्सक्लूसिव लाइन्स जॉइनिंग को तरजीह देता हूं क्योंकि मुझे एक्सप्रेशन के अंत में पैरेंस की अव्यवस्था पसंद नहीं है।
लेकिन मुझे एक स्ट्रिंग के लेखन द्वारा कब्जा की गई चौड़ाई को कम करने के लिए इंप्लाट लाइंस जॉइनिंग पसंद है।
फिर कुछ मामलों में, मैं दो तरीकों से मिश्रण नहीं करने के लिए शर्मिंदा हूं


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

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