एक समारोह एक पाठ फ़ाइल के नाम एक इनपुट के रूप लेता है के रूप में फ़ाइल वस्तु, मैं refactor कर सकते हैं यह बजाय एक फ़ाइल वस्तु लेने के लिए (मैं इसे "धारा" कहते हैं, वहाँ एक बेहतर शब्द है?)। फायदे स्पष्ट हैं - एक समारोह है कि एक तर्क के रूप एक धारा लेता है:फ़ाइल नाम बनाम एक समारोह तर्क
- बहुत आसान, के लिए एक इकाई परीक्षण लिखने के बाद से मैं सिर्फ परीक्षण के लिए एक अस्थायी फ़ाइल बनाने की जरूरत नहीं है
- अधिक लचीला, क्योंकि मैं इसे ऐसे परिस्थितियों में उपयोग कर सकता हूं जहां किसी भी तरह से पहले से ही एक चर
में फ़ाइलों की सामग्री पहले से मौजूद है, क्या धाराओं के लिए कोई नुकसान है? या क्या मुझे हमेशा फ़ाइल नाम तर्क से एक फ़ंक्शन को एक स्ट्रीम तर्क में दोबारा दोहराया जाना चाहिए (मान लीजिए, फ़ाइल केवल पाठ है)?
हाँ, जब मैंने कहा कि "धारा", मैं "फ़ाइल खोलने वस्तु" का मतलब है। क्या एक सजावट लिखना संभव नहीं होगा जो धारा राज्य को बचाता है और पुनर्स्थापित करता है? – max
और न वहाँ एक धारा की एक सस्ती प्रतिलिपि बनाने के लिए एक तरह से, ऐसा है कि नकल, जबकि मूल धारा के "सूचक" अछूता छोड़ दिया है अपने स्वयं के "सूचक" का मालिक है? यह राज्य दृष्टिकोण को बचाने/पुनर्स्थापित करने से भी क्लीनर होगा। – max
@max - निश्चित रूप से, आप ऐसा करने के लिए एक सजावट लिख सकते हैं। जब आप राज्य को पुनर्स्थापित कर रहे हों और जब आप नहीं हों तो दस्तावेज़ करना महत्वपूर्ण बात है। जहां तक एक प्रतिलिपि बना रही है, केवल एक चीज जिसे मैं सोच सकता हूं वह 'itertools.tee' है, जो थोड़ा अलग है (लेकिन यह मेरे सामान्य सोने के समय से पहले है, इसलिए मैं अभी कुछ भी टाइप नहीं करता हूं: ^)। – mgilson