python - SWIG INOUT 类型(C++ 到 Python)
问题描述
我正在为 C++ api 创建一个 python 包装器,使用模板或多或少地支持某些类型,但 api 需要一些变量通过引用,其中一个是 int,另一个是 float。
如果我没记错的话,它是通过创建一个 INOUT 应用来完成的,例如:
%apply float& INOUT { float& a };
%apply int& INOUT { int& a };
但是我如何在我的 python 中使用这些类型呢?
提前感谢您的任何提示。
解决方案
这些参数是从生成的 python 函数返回的(考虑到包装的 C++ 函数签名,并不完全直观)。假设这是您公开的功能:
%apply float& INOUT { float& a };
%apply int& INOUT { int& b };
void foo(float& a, int& b);
你会从 python 调用它
a = 3.14
b = 42
a, b = foo(a, b)
如果不捕获返回值,则a
保持b
不变。
推荐阅读
- java - 没有 JDBC 类型的方言映射:-101,同时从 Oracle 获取带时区的时间戳到 OffsetDatetime
- mysql - AdonisJs Mysql 关系不正常!每当我尝试从数据库中获取时给出空数组
- data-structures - 如何将flutter项目从windows导入linux?
- android - 如何在 Firebase 控制台中读取事件 SELECT_CONTENT 的详细信息
- ios - 滚动时是否可以禁用 UITableview 多个“cellForRowAt”方法调用?
- ios - 如何更新 WDA WebDriverAgentRunner 产品构建版本?
- x86 - 为什么编译器将数据放在 PE 和 ELF 文件的 .text(code) 部分,CPU 如何区分数据和代码?
- blueprism - Blue Prism - 在一个过程中使用多个应用程序 - 保留相关数据
- python - 从周围的边界框中提取车牌平行四边形?
- algorithm - 如何遍历一棵树以找到最小值