दो अवधारणाओं से हमें यह समझने में मदद मिल सकती है कि पायथन ने देशी मशीन कोड को क्यों संकलित किया है "संकलित सी या अन्य सामान्यतः संकलित भाषाओं के रूप में तेजी से नहीं चल सकता है"। उन्हें अर्ली बाइंडिंग और लेट बाइंडिंग कहा जाता है।
मुझे यह कहकर शुरू करना चाहिए कि मैं पायथन विशेषज्ञ नहीं हूं, और मैं दुर्घटना से इस साइट पर आया था। लेकिन मुझे यह साइट पसंद है।
जैसा कि यहां एक अन्य प्रतिक्रिया में उल्लेख किया गया है, सी ++ संकलक कार्यक्रम के बारे में बहुत कुछ जान सकता है और निर्णय ले सकता है कि विशिष्ट डेटा संरचनाओं के लिए कौन से संचालन का उपयोग करना है। एक उदाहरण के रूप में यदि दो पूर्णांक चर को एक साथ जोड़ने की आवश्यकता होती है, तो संकलक जानता है कि वे मूल पूर्णांक हैं, उदाहरण के लिए 32 बिट्स चौड़े हैं और यह उन्हें एक "ADD" निर्देश के साथ जोड़ सकता है। तो यह कोड में ADD निर्देश को संकलित करता है। जब प्रोग्राम चल रहा हो तो इसे लॉक किया गया है और इसे बदला नहीं जा सकता है। यह जल्दी बाध्यकारी है।
दूसरी ओर पायथन जैसी भाषा में हम विभिन्न तरीकों से विभिन्न प्रकार के डेटा को एक साथ फेंकने के लिए कार्यक्रम की अपेक्षा कर सकते हैं। अब कंपाइलर को यह नहीं पता होता है कि हमारे 2 वैरिएबल पूर्णांक, फ्लोट्स, स्ट्रिंग्स या लिस्ट हैं या नहीं। इसलिए इसे कोड को संकलित करना होगा जो उस जानकारी को रन टाइम पर निर्धारित करता है और प्रोग्राम के चलने के दौरान सही संचालन का चयन करता है। यह देर से बाध्यकारी है और हम समझ सकते हैं कि उस अतिरिक्त काम को करने के लिए एक प्रदर्शन हिट होगा जबकि कार्यक्रम चल रहा है। यह वह मूल्य है जो आप उन विकल्पों को पाइथन जैसी भाषा में खुला रखने के लिए अदा करते हैं लेकिन यह अधिकतम रन-टाइम लचीलापन प्रदान करता है।