কম্পিউটার টিউটোরিয়াল

C++-এ Python অবজেক্ট কীভাবে ব্যবহার করবেন?

এখানে একটি উদাহরণ যেখানে একটি সিম্পল Python অবজেক্ট র‍্যাপ করা এবং এম্বেড করা হয়েছে। আমরা এখানে .c ব্যবহার করছি, C++-এর জন্য একই ধাপ প্রযোজ্য:

class PyClass(object):
    def __init__(self):
        self.data = []
    def add(self, val):
        self.data.append(val)
    def __str__(self):
        return "Data: " + str(self.data)

cdef public object createPyClass():
    return PyClass()

cdef public void addData(object p, int val):
    p.add(val)

cdef public char* printCls(object p):
    return bytes(str(p), encoding = 'utf-8')

আমরা Cython দিয়ে কম্পাইল করি pycls.pyx (C++-এর জন্য --cplus ব্যবহার করুন) যাতে একটি .c এবং .h ফাইল জেনারেট হয় যা সোর্স এবং ফাংশন ডিক্লেয়ারেশন রিসপেক্টিভলি ধারণ করে। এখন আমরা একটি main.c ফাইল তৈরি করি যা Python স্টার্ট আপ করে এবং আমরা এই ফাংশনগুলো কল করার জন্য রেডি:

#include "Python.h"   // Python.h সবসময় প্রথমে ইনক্লуд হয়।
#include "pycls.h"     // আপনার হেডার ফাইল ইনক্লуд করুন।
int main(int argc, char *argv[]){
    Py_Initialize();   // Python ইনিশিয়ালাইজ করুন
    PyInit_pycls();    // মডিউল ইনিশিয়ালাইজ করুন (Py2-এ initpycls();)
    PyObject *obj = createPyClass();
    for(int i=0; i<10; i++){
        addData(obj, i);
    }
    printf("%s\n", printCls(obj));
    Py_Finalize();     // Python ফাইনালাইজ করুন
    return 0;
}

সঠিক ফ্ল্যাগস দিয়ে কম্পাইল করুন (যেগুলো আপনি পাবেন python3.5-config বা python-config [Py2]-এর থেকে):

gcc pycls.c main.c -L$(python3.5-config --cflags) -I$(python3.5-config --ldflags) -std=c99

এটি আমাদের এক্সিকিউটেবল তৈরি করবে যা আমাদের অবজেক্টের সাথে ইন্টারঅ্যাক্ট করে:

./a.out
Data: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

এই সব কাজ করা হয়েছে Cython এবং public কিওয়ার্ড ব্যবহার করে যা .h হেডার ফাইল জেনারেট করে। আমরা বিকল্পভাবে শুধু একটি Python মডিউল Cython দিয়ে কম্পাইল করতে পারতাম এবং হেডার/অ্যাডিশনাল বয়লারপ্লেট নিজেদের হ্যান্ডেল করতে পারতাম।

  1. উইন্ডোজে পাইথন ব্যবহার করার পূর্ণ নির্দেশিকা

  2. Tkinter Python-এ Thread ব্যবহার করার পদ্ধতি

  3. পাইথনে ল্যাম্বডা ফাংশন ব্যবহারের পদ্ধতি

  4. ম্যাকএ পাইথন ব্যবহার করার পূর্ণ গাইড