python-c-extension

    2热度

    1回答

    呼叫PyErr_Set*可以安全地覆盖异常吗?根据文档,如果出现错误,PySequence_Fast会提供一个TypeError以及提供给它的const char *消息参数。 PySequence_Fast发生错误后拨打PyErr_SetObject是否安全? 实施例: static PyObject * myfunc(PyObject * self, PyObject * args) {

    1热度

    1回答

    如果我有以下功能并且可选参数myobj未通过,那么myobj仍然是NULL还是设置为Py_None? static PyObject * myfunc(PyObject * self, PyObject * args) { PyObject * myobj = NULL; if (!PyArg_ParseTuple(args, "|O", &myobj)) { re

    7热度

    3回答

    我刚刚开始玩Python C扩展,并且很好奇为什么可以从Python调用的C函数必须使用2个PyObject *参数并返回一个PyObject *。我写了下面的 “Hello World” 扩展名: #include <Python.h> static PyObject * hello_world(PyObject *self, PyObject *noargs) { print

    0热度

    1回答

    我使用Python/C API和想C函数采取一个Python长整数参数,nPyLong,并将其转换成一个字符阵列,nString,在底座10在此是我想要做的一个片段。 PyObject *nPyLong; PyArg_ParseTuple(args, "O", nPyLong); PyLong_Check(nPyLong) // returns true const char *nStr

    4热度

    1回答

    我正在学习Python-C扩展,并且对使用关键字参数的方法为什么必须转换为PyCFunctions感到困惑。我对PyCFunction的理解是,它需要两个指向PyObjects的指针并返回一个指向PyObject的单个指针 - 例如, PyObject* myFunc(PyObject* self, PyObject* args) 如果我要使用使用关键字参数的函数,那么这个功能将三分,PyO​

    5热度

    1回答

    从我所知道的,PyList_SetItem和PyList_SETITEM之间的区别在于PyList_SetItem会降低它覆盖的列表项的引用计数,而PyList_SETITEM不会。 是否有任何理由不应该只使用PyList_SetItem?或者如果我使用PyList_SetItem来初始化列表中的索引位置,我会陷入麻烦吗?

    1热度

    1回答

    这应该是一个微不足道的问题,但并没有成为初学者。 我使用以下Python C-extenstion numpy的阵列已: #include <cmath> #include <Python.h> #include <iostream> #include "numpy/arrayobject.h" using namespace std; PyObject *func_calc(PyOb

    1热度

    2回答

    正如我所理解的C和C++之间的关系,后者基本上是前者的扩展,并保留了一定程度的向后兼容性。假设可以用C++代码调用python C API是否安全? 更重要的是,我注意到,Python官方文档捆绑C和C++的扩展一起在同一页上。我找不到C++ API。这使我相信相同的API在两种语言中都是安全的。 有人可以确认或否认这一点? 编辑: 我觉得我比它必须是我的问题要复杂得多。问题是:为了在C++中编写

    1热度

    3回答

    我读通过文件methodobject.c,因为我想学习制作C扩展的Python,当我看到下面的代码片段: PyObject * PyCFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction

    9热度

    2回答

    我一直在努力学习如何为Python编写C-extensions,并且想确定我理解PyArg_ParseTupleAndKeywords是如何工作的。 我相信第一个参数是一个PyObject指针,它指向按照传递顺序传递给C扩展函数的参数数组。第二个参数是传递的关键字列表,传递的位置以及很可能的某种指示标志,指示关键字在哪个位置开始和位置变得无关紧要。 PyArg_ParseTupleAndKeywo