2009-09-16 17 views
5

क्या आपको लगता है कि परंपरा है कि ज्यादातर प्रयोग किया जाता है जब कोड में शाब्दिक शब्दकोश लेखन है?अजगर ब्रैकेट सम्मेलन

मैं एक जवाब के रूप में एक संभव सम्मेलन लिखेंगे।

+3

चुनाव पिछली कॉमा के लिए समुदाय विकी – SilentGhost

उत्तर

16
my_dictionary = { 
    1: 'something', 
    2: 'some other thing', 
} 
+6

+1 होना चाहिए। – RichieHindle

+0

सबसे पहले, मैंने सूचियों, डिक्ट्स इत्यादि में पिछली कॉमा की उपयोगिता की सराहना नहीं की थी, लेकिन यह * वास्तव में * सूची के बाद के संपादन को सरल बनाता है, भले ही आप रीडरिंग, प्रतिलिपि/पेस्टिंग या नए आइटम जोड़ रहे हों। – PaulMcG

+3

एक लाइन जोड़ना कॉमा के साथ एक-पंक्ति diff है। – u0b34a0f6ae

13

मैं कहूंगा कि लगभग कोई मानक नहीं है।

मैं इंडेंट करने के दो तरीके देखा है:

Indent 1: 
my_dictionary = { 
    'uno': 'something', 
    'number two': 'some other thing', 
} 

Indent 2: 
my_dictionary = {'uno': 'something', 
       'number two': 'some other thing', 
       } 

मैं तीन रखा देखा है अंत ब्रैकेट के लिए:

my_dictionary = {'uno':  'something', 
       'number two': 'some other thing', 
       } 
:

End 1: 
my_dictionary = {'uno': 'something', 
       'number two': 'some other thing', 
} 

End 2: 
my_dictionary = {'uno': 'something', 
       'number two': 'some other thing', 
       } 

End 3: 
my_dictionary = {'uno': 'something', 
       'number two': 'some other thing',} 

और कभी-कभी आप मूल्यों को सही ठहराने

और कभी कभी भी कोलन:

my_dictionary = {'uno'  : 'something', 
       'number two' : 'some other thing', 
       } 

कौन सा अजीब लग रहा है।

और कभी-कभी आप समाप्त अल्पविराम है, और कभी कभी नहीं:

my_dictionary = {'uno': 'something', 
       'number two': 'some other thing'} 

और कभी-कभी आप यह सब छड़ी एक पंक्ति पर (अगर यह फिट बैठता है)।

my_dictionary = {'uno': 'something', 2: 'some other thing'} 

प्रत्येक व्यक्ति को इन शैलियों का अपना संयोजन लगता है। व्यक्तिगत रूप से मैं आपके उदाहरण में उपयोग की जाने वाली शैली की ओर रुख करता हूं, जब तक कि कोई कारण न हो। सामान्य कारण यह नहीं है कि जब आपके पास एक कथन के हिस्से के रूप में एक शब्दकोश है। इस तरह:

amethodthattakesadict({'hey': 'this', 
         'looks': 'a', 
         'bit': 'shitty', 
         }) 

मैं आपको सलाह दूंगा कि आप उस व्यक्ति की शैली में स्वयं को अनुकूलित करें जिसने आप जिस कोड को संपादित कर रहे हैं उसे लिखा है। यदि यह आपका कोड है: जैसा आपको पसंद है। :-)

+2

+1। – hcs42

+5

मुझे लगता है कि पीईपी 8 द्वारा वास्तव में शासित उन उदाहरणों का एकमात्र हिस्सा कॉलन के चारों ओर अंतर है। शून्य से पहले, एक के बाद। – Triptych

8

बारे में अंत ब्रेस: ​​मैं इसे इस तरह पसंद करते हैं:

my_dictionary = { 
    'a': 'first value', 
    'b': 'second', 
    } 

और मैं आपको बता दूँगा क्यों: क्योंकि अजगर कोड खरोज कोई करीबी टोकन है, कोड की तरह इंडेंट है: पहले लाइन (अगर है, जबकि, डीईएफ़, आदि), खंड के बाकी हिस्सों से outdented है अन्य सभी लाइनों के साथ एक ही राशि इंडेंट। खंड की आखिरी पंक्ति अन्य सभी चीज़ों के साथ इंडेंट की गई है। अगली पंक्ति उसी तरह इंडेंट की गई है क्योंकि पहली पंक्ति अगले खंड की पहली पंक्ति है, न कि इस की अंतिम पंक्ति।

तो मैं कोड खंड की है कि इसी तरह की एक परंपरा का उपयोग करके डेटा संरचनाओं इंडेंट करने के लिए चाहते हैं, भले ही डेटा संरचनाओं एक स्पष्ट समापन टोकन है, और इसलिए अधिक लचीलापन हो सकता था।

-3

मैं क्या यह, अगर शब्दकोश एक पंक्ति पर फिट करने के लिए बहुत बड़ी है:

d = \ 
    { 
    'a' : 'b', 
    'c' : 'd' 
    } 
3

इंडेंटेशन शैली 1, शैली 3 (Lennart के जवाब के बाद) को समाप्त हुए:

my_dictionary = {1: 'thing_one', 
        2: 'thing_two', 
        ... 
        n: 'thing_n'} 

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

एक दोष यह हो सकता है कि शुरुआत या अंत में सम्मिलन अन्य शैलियों की तुलना में थोड़ा कठिन है। एक उचित संपादक को ध्यान में रखते हुए जो पाइथन कोड लिखने का समर्थन करता है, उसे इतना अंतर नहीं करना चाहिए।

इस इंडेंटेशन शैली को संदर्भ में आज़माएं, और इसे सी-स्टाइल इंडेंटेशन साइड से तुलना करें, फिर तय करें कि कौन सा पाइथोनिक और सुसंगत दिख रहा है।

हो सकता है कि यह, तुतलाना शैली खरोज बुलाया जा सकता है, क्योंकि यह जिस तरह कोड तुतलाना सदियों दशक के बाद से इंडेंट किया गया है, लेकिन यह, उदाहरण के लिए, यह भी अक्सर स्मालटाक कोड में प्रयोग किया जाता है। एक चीज जिसे आप अक्सर ब्रांड्स के प्लेसमेंट (भाषाओं की तरह लिस्प में) के बारे में चर्चाओं में पढ़ते हैं: "उन्हें अतिरिक्त लाइन क्यों दें? क्या वे महत्वपूर्ण हैं?"।

हालांकि दिन के अंत में, यह ज्यादातर स्वाद की बात है।

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