元组由 Swig 生成的 Python 包装器返回,用于C++向量
tuple is returned by python wrapper generated by swig for a C++ vector
对于以下C++ API:
std::vector<float> get_sweep_points()
{
return program->sweep_points;
}
Swig 生成一个包装器,它返回元组((而不是列表[]。为什么?如何强制 Swig 将列表返回给 python。
如果你使用std_vector.i
,你会得到由std_vector.i
实现的typemap。如果你不喜欢它,你必须编写自己的类型图。
下面是一个类型映射,用于覆盖默认行为(无错误检查(并返回列表而不是元组:
%typemap(out) std::vector<int> (PyObject* obj) %{
obj = PyList_New($1.size());
for(auto i = 0; i < $1.size(); ++i)
PyList_SET_ITEM(obj, i, PyLong_FromLong($1[i]));
$result = SWIG_Python_AppendOutput($result, obj);
%}
当然你也可以只做v = list(get_sweep_points())
,现在它是一个列表:^(
相关文章:
- 不能将方法返回的值用于另一个方法
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 从 C++ 函数与 Python 函数返回的不一致值用于偏斜正态分布
- 函数可以应用于 std::optional,并返回一个可选值吗?
- 用于返回嵌套类类型的作用域解析运算符
- 如何使函数返回数组?用于制作在VB.NET中使用的DLL
- 如何修复用于根据参数返回不同类型的模板类中的错误C2679?
- 用于返回开关的三元运算符
- C++ 超载 += 用于两个袋子的合并,返回类型为空隙
- 基于范围的 for 循环,用于包含C++中的指针的自定义链表,仅返回对象
- 如何创建用于存储和返回浮点数数组的结构
- 为什么在下面的代码返回类型中是用于运营商重载的类类型
- C 编译器可以执行用于返回值的命名const变量的RVO
- 错误 C2440:"返回":无法转换。适用于 vs140,141,但不适用于 vs142
- 用于获取以元音和辅音开头的单词数量的程序返回错误的答案
- 多态性是否适用于值?或者在按(基)值返回时使用派生类的移动构造函数
- 为什么"return 0"适用于在函数中返回指针,但不适用于参考?
- C++ Rcpp::接口的接口不适用于返回 std::p air 的函数
- 用于指示返回值生存期的C++函数属性和参数相同
- 方法返回用于基于范围的for循环的容器