का उपयोग कर सी से पायथन फ़ंक्शन को कॉल करते हुए मेरे पास निम्न प्रश्न है। हमें सी कोड में कॉलबैक फ़ंक्शन पास करना होगा। समारोह में एक ही मॉड्यूल में एक Cython समारोह है, तो स्थिति काफी सरलपायथन/साइथन/सी और कॉलबैक, सीथॉन
है Cython में:
def callme(int x):
c_callme(x, <int (*)(int)>&callbackme)
cdef int callbackme(int x):
print <int> x
return <int>x
सी में:
int c_callme(int x, int (*f)(int))
{
printf("---%d\n",x);
printf("--%d\n",f(x));
return x;
}
सवाल है इस प्रकार है: हम चाहते हैं इस कोड को सबसे पाइथोनिक तरीके से सामान्यीकृत करें ताकि यह कॉलबैक तर्कों के रूप में भी अजगर कार्यों को स्वीकार कर सके (बेशक, कुछ अतिरिक्त परत की आवश्यकता है), और सी/साइथन अन्य मॉड्यूल से भी कार्य करता है। मुझे लगता है कि, एक अलग मॉड्यूल से सी/साइथन कार्यों के लिए किसी को इन कार्यों का पता प्राप्त करना होगा (लंबे int में परिवर्तित करें?) और पायथन फ़ंक्शन के लिए एक निश्चित रैपर की आवश्यकता होती है
के माध्यम से, अपने अजगर कार्य करने के लिए तर्क पारित करने के लिए कृपया कोड स्वरूपण ... – ThiefMaster