मैं वर्तमान में प्रथम वर्ष के विश्वविद्यालय के छात्रों को पाइथन पढ़ता हूं, और मुझे यह जानकर आश्चर्य हुआ कि प्रतीत होता है कि प्रतीत होता है कि input
फ़ंक्शन, कि मेरे कुछ छात्रों ने (और अजीब व्यवहार से उलझन में) उपयोग करने का निर्णय लिया था, eval
पर कॉल छुपा रहा था यह।क्या कच्चे_इनपुट पर पाइथन के इनपुट का उपयोग करना हमेशा उपयोगी होता है?
तो मेरा सवाल यह है कि input
फ़ंक्शन कॉल eval
क्यों है, और इसके लिए यह कभी भी उपयोगी होगा कि raw_input
के साथ यह सुरक्षित नहीं होगा? मैं समझता हूं कि यह पायथन 3 में बदल दिया गया है, लेकिन यह पहली जगह में एक असामान्य डिजाइन निर्णय की तरह लगता है।
Python 2.x input function documentation
कोड-गोल्फ –
के लिए यह उपयोगी है "क्यों" का जवाब देने के लिए - पायथन का पहला आरपीएल हो सकता है 'जबकि 1: प्रिंट इनपुट() '। मैं उस प्राचीन समय पर शर्त लगाता हूं, अच्छे प्रोग्रामिंग प्रथाओं का समर्थन करना पाइथन की प्राथमिकताओं की सूची पर उतना ही अधिक नहीं था जितना कि अब है। पायथन 3 की 'जबकि सत्य: प्रिंट (eval (इनपुट()))' शायद और भी भ्रमित लग सकता है - उन सभी घोंसलेदार कोष्ठक! –