การสอนแบบทีละขั้นตอน

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')#…