#包含?& ltstdlib.h & gt
#包含?& ltPython.h & gt
靜電?p對象?*
wmf_reverse(PyObject?*自我,?p對象?*參數,?p對象?*kwargs)?{?
靜電?char*?kwlist[]?=?{“姓名”,?NULL };
夏爾?*姓名?=?NULL
p對象?*retval?=?NULL?
//?問題1:?只取壹個字符串,格式應該是" s "
//?& gt& gt& gt?if(PyArg _ ParseTupleAndKeywords(args,keyds,“isi”,kwlist,& amp姓名))
如果?(PyArg _ ParseTupleAndKeywords(args,誇爾斯?“s”,?kwlist,?& amp姓名))?{
retval?=?(PyObject?*)Py_BuildValue("i ",1);
printf("%s\n ",姓名);
//?問題二:不放
//?& gt& gt& gt?免費(姓名);?
}?不然呢?{
retval?=?(PyObject?*)Py_BuildValue("i ",0);
}
回歸?retval
}?
靜電?PyMethodDef
wmf_methods[]?=?{
{"reverse ",(PyCFunction)wmf_reverse,?METH_VARARGS?|?METH _關鍵詞,?“反轉”},
//?問題3:方法定義表應該以空記錄結束。
{NULL,?NULL,?0,?NULL},
};
//?問題4:沒有定義模塊。
靜電?struct?PyModuleDef
wmf_module?=?{
PyModuleDef_HEAD_INIT,
“wmf”,/*?名字?的?模塊?*/
NULL,?/*?模塊?文檔?梅?是嗎?NULL?*/
-1,?/*?尺寸?的?每個口譯員?狀態?的?那個?模塊,
還是?-1?如果?那個?模塊?保持?狀態?在?全球?變量。?*/
wmf_methods,
};
//?問題5:入口函數應該聲明為:PyMODINIT_FUNC。
FUNC皮莫迪尼特
PyInit_wmf(void)?{
//?問題6: py _ initmodule是要初始化的模塊,不是方法。所以轉移法的定義是錯誤的。
//?另外,python2.x使用Py_Init_module,python3.x使用PyModule_Create。
//?兩者略有區別,自己註意。我這裏用的是python3.x。
//Py_InitModule("wmf ",extest methods);
p對象?* m;
m?=?PyModule_Createwmf _ module);
如果?(m?==?NULL)?{
回歸?NULL
}
回歸?m;
}