पायथन में सार्वभौमिक न्यूलाइन्स विधा को क्यों चित्रित किया गया है?


26

मैंने अभी देखा कि फ़ाइल संचालन की सार्वभौमिक न्यूलाइन सुविधा अपने रास्ते से हट रही है।

पायथन 3.5 openके modeपैरामीटर के लिए प्रलेखन इंगित करता है कि यह पदावनत है:

'U' सार्वभौमिक न्यूलाइन्स मोड (पदावनत)

कम से कम पाइथन 3.2 के रूप में वापस, तर्क openका उपयोग करते समय एक समान "बैकवर्ड संगतता केवल" चेतावनी शामिल modeहै:

'U' सार्वभौमिक न्यूलाइन्स मोड (पीछे की संगतता के लिए; नए कोड में उपयोग नहीं किया जाना चाहिए)

पायथन 2.7 में भी, इसी तरह की चेतावनी के प्रलेखन में रखा गया है io.open।

इसका क्या कारण है?


2
इसके पीछे तर्क काफी सरल है। अनाम चीजों के बजाय चीजों का नाम रखने के लिए इसे "पायथोनिक" माना जाता है। इसलिए आप एक चरित्र ध्वज के बजाय एक नामित पैरामीटर का उपयोग करते हैं। झंडा विचार पायथन सी के कार्यान्वयन का एक बहुत कुछ है और यह छोटा सा आश्चर्य है कि इसे बाहर निकाला जा रहा है।
— वर्ल्ड इंजीनियर 20

क्योंकि डिफ़ॉल्ट रूप से फाइलें यूनिवर्सल न्यूलाइन मोड में खोली जाती हैं।
— बोरिस

जवाबों:


37

open()समारोह अजगर 3 पुस्तकालय में एक है newlineतर्क। Noneयूनिवर्सल न्यूलाइन्स को सक्षम करने के लिए इसे सेट करना । यह इसे स्वीकार करने का तरीका है, mode='U'तर्क निरर्थक का प्रतिपादन करता है।

newline=Noneयूनिवर्सल न्यूलाइन्स मोड को सक्षम करने के लिए उपयोग करें (यह डिफ़ॉल्ट है)।


5
लगता है मुझे गलत समझा। मैंने इसे यह कहते हुए पढ़ा कि सामान्य तौर पर सार्वभौमिक नई कहानियों को केवल चरित्र चरित्र नहीं, बल्कि पदावनत किया जा रहा था। इसे साफ करने के लिए धन्यवाद।
— jpmc26

6

इस सवाल पर ठोकर खाने के बाद, मैंने इस बारे में स्पष्ट होने के लिए दस्तावेज़ को अद्यतन किया कि क्या चल रहा है ( https://github.com/python/cpython/pull/11646/files )।

भ्रमित करने वाली गुप्त तालिका प्रविष्टि 'U'चली गई है, और इसके बजाय नीचे एक अनुच्छेद है जो बताता है:

एक अतिरिक्त मोड वर्ण की अनुमति है, 'U'जिसका अब कोई प्रभाव नहीं है, और इसे पदावनत माना जाता है। यह पहले सक्षम: शब्द: universal newlinesपाठ मोड में, जो पायथन 3.0 में डिफ़ॉल्ट व्यवहार बन गया। newline <open-newline-parameter>आगे के विवरण के लिए : रेफरी: पैरामीटर के प्रलेखन का संदर्भ लें ।

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