我想应该是直截了当的。我很有信心这是我不知道怎么问这个简单问题的一个例子。
尝试将python对象(列表)强制转换为无符号字符数组。
PyObject * py_data;
unsigned char c_data[MAX_LENGTH];
// py_data is filled using the PyArg_ParseTuple(....)
// Build the outbound payload
for(i=0; i < block_length; i++)
{
c_data[i] = HOW_TO_CAST_THIS(py_data[i]);
}
我读过《a a》,这是一本很好的书,也没什么好运气。
任何其他教程或参考建议将是伟大的。
最佳答案
要从元组中取出项目,您必须使用PyTuple_GetItem
(或者,如果您知道它是元组,则可以使用不安全的PyTuple_GET_ITEM
)。这会给你PyObject
s。
要从int
s中获取PyObject
s,请使用PyInt_AsLong
。
决不要将PyObject
s转换为C类型(除了void *
),不要尝试使用索引标记(PyObject
)索引py_data[i]
。两者都会给你很坏的结果。始终使用Python API方法处理PyObject
s。