แนวคิดสองประการอาจช่วยให้เราเข้าใจได้ดีขึ้นว่าทำไมไพ ธ อนที่คอมไพล์รหัสเครื่องดั้งเดิม "อาจ" ไม่ทำงานเร็วเท่ากับการคอมไพล์ C หรือภาษาที่คอมไพล์ทั่วไป พวกเขาจะเรียกว่ามีผลผูกพันต้นและมีผลผูกพันในช่วงปลาย
ฉันควรเริ่มด้วยการบอกว่าฉันไม่ใช่ผู้เชี่ยวชาญของ Python และฉันมาที่ไซต์นี้โดยไม่ได้ตั้งใจ แต่ฉันชอบเว็บไซต์นี้
ดังกล่าวในการตอบสนองอื่นที่นี่คอมไพเลอร์ C ++ สามารถรู้มากเกี่ยวกับโปรแกรมและตัดสินใจเกี่ยวกับการดำเนินงานที่จะใช้สำหรับโครงสร้างข้อมูลที่เฉพาะเจาะจง เป็นตัวอย่างถ้าจำเป็นต้องเพิ่มตัวแปรจำนวนเต็มสองตัวเข้าด้วยกันคอมไพเลอร์รู้ว่าพวกมันเป็นจำนวนเต็มพื้นฐาน 32 บิตและสามารถเพิ่มเข้าด้วยกันด้วยคำสั่ง "ADD" ดังนั้นจึงรวบรวมคำสั่ง ADD เป็นรหัส มันถูกล็อคอยู่และไม่สามารถเปลี่ยนแปลงได้ในขณะที่โปรแกรมกำลังทำงาน นั่นคือการผูกพันก่อน
ในทางกลับกันในภาษาเช่น Python เราอาจคาดหวังว่าโปรแกรมจะรวบรวมข้อมูลประเภทต่างๆเข้าด้วยกันในรูปแบบที่ซับซ้อน ตอนนี้คอมไพเลอร์ไม่ทราบว่าตัวแปร 2 ตัวของเราเป็นจำนวนเต็มลอยสตริงหรือรายการ ดังนั้นจึงต้องมีการคอมไพล์โค้ดที่กำหนดว่าข้อมูล ณ รันไทม์และเลือกการดำเนินการที่ถูกต้องในขณะที่โปรแกรมกำลังทำงาน นี่เป็นข้อผูกมัดที่ล่าช้าและเราสามารถเข้าใจได้ว่าจะมีผลการทำงานที่ยอดเยี่ยมสำหรับการทำงานพิเศษนั้นในขณะที่โปรแกรมกำลังทำงานอยู่ เป็นราคาที่คุณจ่ายเพื่อให้ตัวเลือกเหล่านั้นเปิดในภาษาเช่น Python แต่ให้ความยืดหยุ่นในการใช้งานสูงสุด