print
क्यों पाइथन में एक कीवर्ड है और एक समारोह नहीं है?प्रिंट क्यों पाइथन में कोई फ़ंक्शन नहीं है?
उत्तर
क्योंकि गिडो ने फैसला किया है कि उसने गलती की है। :)
इसे तब से सही किया गया है: पाइथन 3 का प्रयास करें, जो एक फ़ंक्शन में परिवर्तन का वर्णन करने के लिए section of its release notes को समर्पित करता है।
संपूर्ण पृष्ठभूमि के लिए, PEP 3105 और इसके संदर्भ अनुभाग में दिए गए कई लिंक देखें!
मैं अभी तक पाइथन 3 के साथ tinkered है। क्या प्रिंट कीवर्ड अभी भी काम करता है? – user538442
नहीं। यह अब एक समारोह है। सरल मामले में, 'प्रिंट "foo" 'बन जाता है' प्रिंट (" foo ")' –
"अब एक फ़ंक्शन" के रूप में ठीक है :) –
अब यह अजगर 3.
अजीब लगता है कि इसे – user538442
@user को सही करने में 10+ साल लग गए: यह आवश्यक नहीं है कि संगतता के मामले के रूप में समय और पीछे दोनों की आवश्यकता हो। –
@ user538442: पिछड़ा संगतता एक कुतिया है :( – delnan
में एक समारोह पायथन 2.x में print
बयान कुछ विशेष वाक्य रचना जो एक साधारण समारोह के लिए उपलब्ध नहीं होगा है। उदाहरण के लिए आप एक अंतिम नई लाइन के आउटपुट को दबाने के लिए पिछला ,
का उपयोग कर सकते हैं या आउटपुट को फ़ाइल में रीडायरेक्ट करने के लिए आप >>
का उपयोग कर सकते हैं। लेकिन यह सब गिटो वैन रॉसम को खुद को एक बयान रखने के लिए पर्याप्त नहीं था - वह print
को पायथन 3.x में एक समारोह में बदल गया।
उह, अब यह समझ में आ रहा है। – user538442
तो अब अतिरिक्त कार्यक्षमता खो गई है जैसे पीछे की ओर, और >> – user538442
यह अभी भी है, लेकिन अब आप इसका उपयोग करते हैं विशेष वाक्यविन्यास के बजाय 'end = 'और' file =' कीवर्ड पैरामीटर। – dan04
print
पायथन में एक बयान है क्योंकि यह एबीसी, पायथन के लिए मुख्य प्रेरणा में एक बयान था (हालांकि यह WRITE
वहाँ कहा जाता था)। बदले में शायद एक समारोह के बजाय एक बयान था क्योंकि यह एक शिक्षण भाषा थी और बुनियादी रूप से प्रेरित थी। दूसरी ओर पाइथन, एक शिक्षण भाषा से अधिक हो गया (हालांकि यह भी इसके लिए अच्छा है)।
हालांकि, आजकल print
एक फ़ंक्शन है। हां, पाइथन 2 में भी, आप
from __future__ import print_function
और आप सभी सेट कर सकते हैं। पायथन 2.6 के बाद से काम करता है।
एक जवाब है कि मैं print
बयान के बारे में क्या सराहना करते हैं, लेकिन जरूरी नहीं कि सरकारी अजगर इतिहास से ड्रॉ ...
अजगर, एक पटकथा भाषा कुछ हद तक, है। अब, "स्क्रिप्टिंग भाषा" की कई परिभाषाएं हैं, लेकिन मैं इसका उपयोग यहां करूँगा: एक भाषा जिसे लघु या संवादात्मक कार्यक्रमों के कुशल उपयोग के लिए डिज़ाइन किया गया है। ऐसी भाषाएं अत्यधिक बॉयलरप्लेट के बिना एक-लाइन प्रोग्राम की अनुमति देती हैं; कुंजीपटल इनपुट को आसान बनाएं (उदाहरण के लिए, अत्यधिक विराम चिह्न से बचकर); और सामान्य कार्यों (शुद्धता के संभावित खर्च पर सुविधा) के लिए अंतर्निहित वाक्यविन्यास प्रदान करते हैं। पायथन के मामले में, एक मूल्य प्रिंट करना एक बहुत आम बात है, खासकर इंटरैक्टिव मोड में। एक समारोह होने के लिए print
की आवश्यकता है यहां अनावश्यक रूप से असुविधाजनक लगता है। विशेष वाक्यविन्यास के साथ त्रुटि का काफी कम जोखिम है जो सही समय 99% सही काम करता है।
इस तर्क से 'इनपुट' को भी एक कथन होना होगा। – steffen
मैं इस पर मेरे विचार में फेंक देगा:
पायथन 2.x print
में गलती से एक बयान, या क्योंकि stdout
पर प्रिंट करने के लिए इस तरह के एक बुनियादी बात यह है नहीं है। बाकी सब कुछ इतना सोचा गया है या कम से कम समझने योग्य कारण हैं कि उस आदेश की गलती अजीब लगती है। यदि stdout
के साथ संचार करना इतना मूल माना गया है, stdin
के साथ संचार करना उतना ही महत्वपूर्ण होगा, फिर भी input()
एक फ़ंक्शन है।
यदि आप list of reserved keywords और list of statements देखते हैं जो अभिव्यक्ति नहीं हैं, print
स्पष्ट रूप से पता चलता है कि यह एक और संकेत है कि बहुत विशिष्ट कारण होने चाहिए।
मुझे लगता है कि print
था, एक बयान और नहीं एक अभिव्यक्ति होने के लिए input()
में एक सुरक्षा भंग से बचने के लिए। याद रखें कि Python2 में input()
जो भी उपयोगकर्ता stdin
में टाइप करता है उसका मूल्यांकन करता है। यदि उपयोगकर्ता ने print a
और a
टाइप किए हैं तो सभी पासवर्ड की एक सूची है, जो शांत विनाशकारी होगा।
जाहिर है, input()
की अभिव्यक्तियों का मूल्यांकन करने के लिए print
सामान्य अंतर्निहित फ़ंक्शन होने के कारण अधिक महत्वपूर्ण माना जाता था।
- 1. vxWorks में कोई मुख्य() फ़ंक्शन क्यों नहीं है?
- 2. console.dir ('') प्रिंट "गुण नहीं" क्यों करता है?
- 3. पाइथन के "कोई नहीं"
- 4. पायथन में, फ़ंक्शन में किसी निष्पादन में कोई आयात क्यों नहीं करता है?
- 5. पाइथन में os.path.curdir क्यों है
- 6. सी में snwprintf फ़ंक्शन क्यों नहीं है?
- 7. जावा में कोई साधारण "फ़ंक्शन" नहीं है?
- 8. .done कोई फ़ंक्शन नहीं है
- 9. appendto() कोई फ़ंक्शन नहीं है?
- 10. c.apply कोई फ़ंक्शन नहीं है
- 11. फ़ंक्शन में हास्केल प्रिंट लाइन्स
- 12. jQuery.parseJSON फ़ंक्शन क्यों नहीं है?
- 13. .Val() फ़ंक्शन क्यों नहीं है?
- 14. पाइथन में "अगर कुछ नहीं है": "अगर कुछब == कोई नहीं:" से बेहतर क्यों है?
- 15. कोई आंशिक फ़ंक्शन प्रकार शाब्दिक क्यों नहीं है?
- 16. फ़ंक्शन के तहत नई लाइन के बिना प्रिंट नहीं करता है क्योंकि यह पाइथन
- 17. पायथन में dir() को प्रिंट फ़ंक्शन क्यों पास नहीं किया जा सकता है?
- 18. मेरा रिकर्सिव फ़ंक्शन क्यों नहीं लौटाता है?
- 19. लैम्बडा अभिव्यक्ति में क्यों प्रिंट नहीं किया जा सकता है?
- 20. जावा वर्चुअल मशीन में कोई जीआईएल क्यों नहीं है? पाइथन को इतना बुरा क्यों चाहिए?
- 21. वास्तविक समय में पायथन प्रिंट फ़ंक्शन
- 22. क्यों नक्शा (प्रिंट, a_list) काम नहीं करता है?
- 23. सी # में कोई रिवर्सएन्यूमेरेटर क्यों नहीं है?
- 24. सी # में कोई ऑब्जेक्ट क्यों नहीं है?
- 25. पायथन में 'प्रिंट' क्या है?
- 26. फ़ंक्शन त्रुटि बनाएं "इस फ़ंक्शन में कोई भी डिटेरमिनिस्टिक नहीं है, कोई SQL नहीं है, या SQL डेटा पढ़ता है"
- 27. toDataURL कोई फ़ंक्शन नहीं
- 28. पार्टिकल फ़ंक्शन पर कोई ऑरसे विधि क्यों नहीं है जो कुल फ़ंक्शन स्वीकार करती है?
- 29. पाइथन मल्टीप्रोसेसिंग: वर्कर फ़ंक्शन में जबकि-लूप के साथ कोई आउटपुट
- 30. jQuery - कोई फ़ंक्शन नहीं ढूंढता?
देखें http://www.python.org/dev/peps/pep-3105/ – jfs
दिलचस्प; इसे कभी भी एक समस्या नहीं माना लेकिन अच्छा सवाल है। –
रीडलन और रीटेल भी टर्बो पास्कल में अंतर्निहित थे। कभी समझ में नहीं आया, और मुझे इसके बजाय कार्यों को बनाने के लिए सी बेहतर पसंद आया। – sashoalm