2013-01-19 12 views
12

सी ++ में, अगर मैं बहुत लंबा हो जाता हूं, या यदि कोई कथन है तो इसमें बहुत सारे चेक हैं तो मुझे कोड की मेरी लाइनें तोड़ना पसंद है।पाइथन की एक पंक्ति को कई लाइनों में तोड़ना?

if (x == 10 && y < 20 && name == "hi" && obj1 != null) 
    // Do things 

// vs 

if (x == 10 
    && y < 20 
    && name == "hi" 
    && obj1 != null) 
{ 
    // Do things 
} 

AddAndSpawnParticleSystem(inParticleEffectName, inEffectIDHash, overrideParticleSystems, mAppliedEffects[inEffectIDHash], inTagNameHash); 
// vs 
AddAndSpawnParticleSystem(inParticleEffectName, inEffectIDHash, overrideParticleSystems, 
    mAppliedEffects[inEffectIDHash], inTagNameHash); 

पायथन में, कोड ब्लॉक टैब द्वारा परिभाषित किए जाते हैं, न कि ";" लाइन

if number > 5 and number < 15: 
    print "1" 

पाइथन में mutliple लाइन संभव है? जैसे ...

if number > 5 
and number < 15: 
    print "1" 

मुझे नहीं लगता कि यह संभव है, लेकिन यह अच्छा होगा!

+6

खैर ... 'अगर 5 <संख्या <15:' – Ryan

+2

रखें '' \\ लाइन – Kabie

+2

कोड ब्लॉक के अंत में या टैब से परिभाषित नहीं कर रहे हैं (एक रिक्त स्थान की निश्चित संख्या), वे किसी भी इंडेंटेशन द्वारा परिभाषित हैं। साथ ही, यह आपकी समस्या नहीं है, आपकी समस्या यह है कि न्यूलाइन आमतौर पर बयान समाप्त करती है। – delnan

उत्तर

27

शैली गाइड कहते हैं:

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

विधि 1: का उपयोग करना कोष्टक

if (number > 5 and 
     number < 15): 
    print "1" 

विधि 2: का उपयोग करना बैकस्लैश

if number > 5 and \ 
number < 15: 
    print "1" 

विधि 3: बेहतर पठनीयता के लिए बैकस्लैश + मांगपत्र का उपयोग

if number > 5 and \ 
     number < 15: 
    print "1" 
+0

आप अपने कोड को एक पंक्ति पर देखना चाहते हैं: 'यदि संख्या> 5 और संख्या <15: ' –

+0

मेरा उत्तर अपडेट किया गया ... – ATOzTOA

+0

+1 हालांकि मैं इसे स्थानांतरित करने के लिए प्रेरित होगा चारों ओर ऑर्डर करें ताकि पसंदीदा कोष्ठक उदाहरण पहले दिखाया गया हो और फिर विकल्प के बाद भी दिखाया गया वैध वाक्यविन्यास। –

1

आप अंत लाइन से बचने के लिए \ प्रतीक जगह कर सकते हैं:

if number > 5 \ 
    and number < 15: 
    print '1' 

कुछ मामलों (जैसे कोष्ठकों के अंदर) में आप पंक्ति के अंत से बचने के लिए कोई विशेष प्रतीकों की आवश्यकता होगी।

documentation on python lexical analysis में अधिक देखें:

एक तार्किक पंक्ति के अंत टोकन NEWLINE का प्रतिनिधित्व करती है। स्टेटमेंट लॉजिकल लाइन सीमाओं को पार नहीं कर सकते हैं सिवाय इसके कि सिंटैक्स द्वारा NEWLINE की अनुमति है (उदा।, कंपाउंड कथन में बयानों के बीच)। स्पष्ट या निहित रेखा में शामिल होने वाले नियमों का पालन करके एक या अधिक भौतिक लाइनों से लॉजिकल लाइन बनाई गई है।

9

आप तोड़ सकते हैं यदि आप surr अगर एकाधिक लाइनों में एक अभिव्यक्ति ound यह कोष्ठकों के साथ:

if (x == 10 
    and y < 20 
    and name == "hi" 
    and obj1 is not None): 
    # do something 

ही कोष्ठक या घुंघराले ब्रेसिज़ सूची या शब्दकोश बनाने के लिए इस्तेमाल का सच है: चीजों की एक सूची के लिए

mylist = [1, 2, 3, 4, 
      5, 6, 7, 8] 

mydict = {1: "a", 2: "b", 
      3: "c", 4: "d"} 
+1

+1, यह हमेशा ईओएल से बचने से बहुत अच्छा दिखता है। (लेकिन '! = Null' काफी पायथन नहीं है:)') – Ryan

+0

@minitech: काफी सही, अनुमानित समकक्ष के लिए तय –

2

pep8 मानक गाइड दांतेदार नई लाइनों लगता है एक लंबी रेखा के लिए ब्रांड्स में जबकि वे लाइन के अंत में बैकस्लैश का सुझाव देते हैं।

Indenting new lines

Backslashes at the end of the line

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