2010-06-20 11 views
12

मैंने किसी को फाइल में सामान लिखने के लिए "प्रिंट" के साथ "प्रिंट" का उपयोग करके देखा है:राइट-शिफ्ट ऑपरेटर एक पायथन प्रिंट स्टेटमेंट में कैसे काम करता है?

In [7]: with open('text', 'w') as f: 
    ...:  print >> f, "Hello, world!" 
    ...: 

In [8]: !type text 
Hello, world! 

यह कैसे काम करता है? "लिखने" विधि का उपयोग करने के बजाय मुझे इसका उपयोग कब करना चाहिए?

उत्तर

12

से https://docs.python.org/2/reference/simple_stmts.html#the-print-statement

प्रिंट भी एक विस्तारित रूप है, वाक्य रचना के ऊपर वर्णित के दूसरे भाग से परिभाषित किया गया है। यह फॉर्म कभी-कभी "प्रिंट शेवरॉन" के रूप में जाना जाता है। इस फ़ॉर्म में, अभिव्यक्ति के बाद को "फ़ाइल जैसी" ऑब्जेक्ट का मूल्यांकन करना चाहिए, विशेष रूप से एक ऑब्जेक्ट जिसमें लिखने() विधि है ऊपर वर्णित । इस विस्तारित फ़ॉर्म के साथ, बाद में अभिव्यक्ति इस फ़ाइल ऑब्जेक्ट पर मुद्रित हैं। यदि पहली अभिव्यक्ति किसी भी, का मूल्यांकन करती है तो sys.stdout को आउटपुट के लिए फ़ाइल फ़ाइल के रूप में उपयोग किया जाता है।

+5

शायद यह ध्यान देने योग्य है कि यह विस्तारित फॉर्म अब पायथन 3 में मौजूद नहीं है, इसलिए नया कोड शायद इससे बचें। –

+4

यह वास्तव में इस मामले में '>>' ऑपरेटर नहीं है; पार्सर विशेष रूप से 'प्रिंट' वाक्यविन्यास के हिस्से के रूप में इसे संभालता है। – abarnert

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