की एक सरणी लौट रहा है, मुझे पता है, कुछ समस्याओं को हल करने के कई तरीके हैं। लेकिन यहाँ मैं जानता हूँ कि जो जिस तरह से मैं इसे करना चाहते हैं, लेकिन मैं इसे अजगर और बड़ा घूँट के साथ काम करने में असमर्थ हूँ ...स्विग, युगल
मैं एक सी समारोह है, जो मुझे डबल मूल्यों की एक सरणी देता है:
double *my(int x)
{
double a,b,*buf;
buf = malloc (x * sizeof(double));
a=3.14;
b=2.7;
buf[0]=a;
buf[1]=b;
return buf;
}
यहां, मैं निश्चित रूप से सरणी को वापसी मूल्य के रूप में रखना चाहता हूं। नहीं, जैसा कि कई उदाहरणों में एक 'शून्य' फ़ंक्शन है, जो एक इनपुट सरणी में लिखता है। मैं हमेशा s.th. मिल -
>>> import example
>>> print example.my(7)
[3.14,2.7]
जो कुछ भी मैं, मैं कुछ वैचारिक समस्याओं यहाँ है: अब, मैं एक बड़ा घूँट-अजगर आवरण है, जो के रूप में इस्तेमाल किया जा सकता प्राप्त करना चाहते हैं <Swig Object of type 'double *' at 0xFABCABA12>
की तरह मैं अपने swg फाइल में कुछ typemaps को परिभाषित करने की कोशिश की:
%typemap(out) double [ANY] {
int i;
$result = PyList_New($1_dim0);
for (i = 0; i < $1_dim0; i++) {
PyObject *o = PyFloat_FromDouble((double) $1[i]);
PyList_SetItem($result,i,o);
}
}
लेकिन फिर भी मैं अपने परिणामों बाहर निकलने के लिए के रूप में आवश्यक असमर्थ हूँ। क्या इस कार्य को प्राप्त करने के लिए किसी के पास एक साधारण कोड-उदाहरण है?
अप्स, हाँ, यह मेरे सामने मौजूद वास्तविक कोड का एक सुपर-छोटा सबसेट है। गलतफहमी के लिए खेद है। – user701370