पायथन कोड के साथ काम करते समय, आपको ऐसी स्थितियों का सामना करना पड़ सकता है, जहां कोड के भीतर सिंटैक्स त्रुटियां होती हैं, जिसका eval फ़ंक्शन का उपयोग करके गतिशील रूप से मूल्यांकन किया जाता है। . हालांकि ऐसी त्रुटियों को पकड़ना संभव है, लेकिन स्रोत कोड में सिंटैक्स त्रुटियों के लिए यह सच नहीं है।
इस व्यवहार को समझने के लिए, इसे याद रखना महत्वपूर्ण है पायथन में निष्पादन का क्रम। जब कोड निष्पादित होता है, तो पायथन कंपाइलर पहले बायटेकोड उत्पन्न करने के लिए कोड को पार्स और संकलित करता है। इस बाइटकोड की व्याख्या पायथन वर्चुअल मशीन (पीवीएम) द्वारा की जाती है।
स्रोत कोड में सिंटैक्स त्रुटियों के मामले में, कंपाइलर त्रुटि का सामना करता है और संकलन प्रक्रिया को रोक देता है। नतीजतन, कोड में परिभाषित प्रयास/छोड़कर ब्लॉक कभी भी चलन में नहीं आते हैं।
हालाँकि, eval का उपयोग करते समय, आसपास के कोड के पहले संकलन के बाद eval स्टेटमेंट के भीतर कोड को अलग से संकलित किया जाता है। इसका मतलब यह है कि eval स्टेटमेंट के भीतर कोई भी सिंटैक्स त्रुटियां दूसरे संकलन रन के दौरान होती हैं। चूंकि पहले संकलन के दौरान प्रयास/छोड़कर ब्लॉक पहले से ही स्थापित किए गए थे, इसलिए eval'd कोड द्वारा उत्पन्न सिंटैक्स त्रुटियों को पकड़ना संभव है।
में सिंटैक्स त्रुटियों को पकड़ने में असमर्थता स्रोत कोड निराशाजनक हो सकता है. लेकिन यह पायथन कार्यान्वयन की एक अंतर्निहित सीमा है। प्रयास/छोड़कर तंत्र के सक्रिय होने से पहले कंपाइलर को अपना पहला रन पूरा करना होगा। इसे निम्न तकनीकों का उपयोग करके प्राप्त किया जा सकता है:
कोड को एक eval स्टेटमेंट में लपेटनाकंपाइल बिल्ट-इन फ़ंक्शन का उपयोग करनाअस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3