2012-03-19 11 views
23

के बीच संघर्ष जहां तक ​​मैं यूनिक्स में जानता हूं, फ़ाइल के अंत में हमेशा खाली रेखा होने के लिए एक अच्छा अभ्यास है - या इसे दूसरे शब्दों में रखने के लिए: प्रत्येक पंक्ति \n के साथ समाप्त होनी चाहिए।पीईपी 8: W292 और W391

PEP8 के साथ अपने अजगर कोड की जाँच के दौरान मैंने देखा कि यह भी कहा गया है कि है कि वहाँ फ़ाइल के अंत में \n होना चाहिए:

W292 no newline at end of file 
    JCR: The last line should have a newline. 

क्या अजीब बात है, यह W391 का विरोध:

W391 blank line at end of file 
    JCR: Trailing blank lines are superfluous. 

    Okay: spam(1) 
    W391: spam(1)\n 

कैसे यह होना चाहिए? क्या मुझे फ़ाइल के अंत में खाली रेखा होनी चाहिए या नहीं?

+3

आप कौन सी पीईपी 8 का जिक्र कर रहे हैं? [आधिकारिक पृष्ठ] (http://www.python.org/dev/peps/pep-0008/) इसका बिल्कुल उल्लेख नहीं करता है। –

+0

आउटपुट पीईपीआई से ''pep8 --show-pep8'' installedy से है। – seler

उत्तर

28

W391 एक खाली लाइन, यह है कि, लगातार दो\n रों है। कोई संघर्ष नहीं है। W292 के अनुसार

 
print 'last line' 


यह गलत है::

+1

पेप में दिखाए गए उदाहरण के बारे में क्या? यह कहता है कि अंत में कोई '' \ n'' नहीं होना चाहिए। मुझे लगता है कि आपका मतलब क्या है '' स्पैम (1) \ n
\ n''। – seler

+13

ऐसा लगता है कि वीआईएम प्रत्येक फ़ाइल के अंत में वास्तव में अगली पंक्ति में बिना '' \ n'' जोड़ता है। साफ! – seler

13

यह है क्या W391 के बारे में बात कर रही है

 
print 'last line' 

क्या सही है:

 
print 'last line' 

+0

एचआरएम .. जब मेरे पास आखिरी संस्करण है, जो आपके पास विम में है, और बिल्ली के माध्यम से, मुझे सिंटैस्टिक से W391 चेतावनी मिलती है। जब मुझे दूसरा उदाहरण मिलता है तो मुझे चेतावनी नहीं मिलती है। क्या यह सिंथेटिक में एक बग है? – naught101

+2

@ naught101 विम दृश्यों के पीछे अंतिम नई लाइन जोड़ता है। इस उदाहरण में, विम आपको धोखा दे रहा है। यदि आप चाहें तो अंतिम न्यूलाइन को न जोड़ने के लिए विम को यह बताने के लिए प्लगइन हैं। –

1

विंडोज '\ N में 'रेखाओं के बीच विभाजक है, लेकिन लिनक्स में \ n' किसी भी पंक्ति पर अंतिम संकेत है। विम लिनक्स प्लेटफॉर्म में लाइनों के अंत में '\ n' जोड़ने के लिए गलत नहीं है लेकिन ओएस परिभाषा के बाद।

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