การสอนแบบทีละขั้นตอน
Python เป็นภาษาโปรแกรมอเนกประสงค์ที่ขึ้นชื่อเรื่องความเรียบง่ายและระบบนิเวศของไลบรารีที่กว้างขวาง อย่างไรก็ตาม ในสถานการณ์ที่ประสิทธิภาพเป็นสิ่งสำคัญ การรวมโค้ด C ที่มีประสิทธิภาพเข้ากับ Python สามารถช่วยปรับปรุงความเร็วได้อย่างมาก ในบทช่วยสอนนี้ เราจะสำรวจวิธีสร้างฟังก์ชัน C และใช้ใน Python โดยใช้ C API โดยใช้ประโยชน์จากสิ่งที่ดีที่สุดของทั้งสองโลก มาเริ่มกันเลย!
ข้อกำหนดเบื้องต้น
หากต้องการปฏิบัติตามบทช่วยสอนนี้ คุณจะต้องมีสิ่งต่อไปนี้:
- ความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรมภาษา C
- Python ติดตั้งอยู่ในระบบของคุณ
- คอมไพเลอร์ AC (เช่น gcc หรือ clang) ที่ติดตั้งบนระบบของคุณ
- ความคุ้นเคยกับบรรทัดคำสั่งหรือเทอร์มินัล
ขั้นตอนที่ 1: การสร้างฟังก์ชัน C
ขั้นแรก เรามาสร้างฟังก์ชัน C อย่างง่ายที่จะคำนวณแฟกทอเรียลของจำนวนเต็มที่กำหนดกัน สร้างไฟล์ใหม่ชื่อ factorial.c
และเพิ่มรหัสต่อไปนี้:
#include <stdio.h> long long factorial(int n) { if (n == 0 || n == 1) { return 1; } return n * factorial(n - 1); }
ในโค้ดนี้ เรากำหนดฟังก์ชัน factorial
ที่คำนวณแฟกทอเรียลของอินพุต n
แบบวนซ้ำ ฟังก์ชันส่งคืนค่า long long
ซึ่งช่วยให้สามารถคำนวณแฟคทอเรียลได้มากขึ้น
ขั้นตอนที่ 2: รวบรวมรหัส C
ต่อไป เราต้องคอมไพล์โค้ด C ลงในไลบรารีที่ใช้ร่วมกันซึ่ง Python สามารถใช้ได้ เปิดเทอร์มินัลหรือพรอมต์คำสั่งของคุณแล้วไปที่ไดเร็กทอรีที่มี factorial.c
ใช้คำสั่งต่อไปนี้เพื่อคอมไพล์โค้ดลงในไลบรารีที่ใช้ร่วมกัน:
gcc -shared -o factorial.so factorial.c
คำสั่งนี้รวบรวมรหัส C ลงในไลบรารีที่ใช้ร่วมกันชื่อ factorial.so
ขั้นตอนที่ 3: การใช้ฟังก์ชัน C ใน Python
ด้วยโค้ด C ที่คอมไพล์เป็นไลบรารี่ที่ใช้ร่วมกัน ตอนนี้เราสามารถใช้มันใน Python ได้แล้ว สร้างสคริปต์ Python ใหม่ชื่อ factorial.py
และเพิ่มโค้ดต่อไปนี้:
from ctypes import CDLL # Load the shared library lib = CDLL('./factorial.so')#…