问题描述
我正在将 cpython 调用移至 pybind。我有以下代码:
PyObject* my_list = ...;
PyList_SetSlice(my_list,i,i+1,NULL);
py::list my_list = ...;
我想写一些类似的东西
my_list.pop(i);
但我没有找到任何可以做到这一点的东西。我应该怎么办?以下是否正确:
PyList_SetSlice(my_list.ptr(),NULL);
还是我泄漏了对象 my_list[i]
?
解决方法
我不确定您为什么不提倡@oooyaya 建议中的语法,但是删除列表中指定 index
处的元素的一种方法是使用 pop()
之类的>
my_list.attr("pop")(index);