如何通过pybind11传递Python的关键字参数?

时间:2019-04-02 03:54:46

标签: python c++ embed pybind11

使用以下关键字参数给该函数__init__(username, password, **kwargs)

  • auto_patch:修补api对象以匹配公共API。默认值:False

  • drop_incompat_key:删除不在公共API中的api对象密钥。 默认值:False

  • 超时:超时间隔(以秒为单位)。默认值:15

  • api_url:覆盖默认的api URL基址

  • cookie:上一个会话中保存的cookie字符串

  • 设置:上一个会话的设置命令

  • on_login:成功登录后回调

  • 代理:指定代理,例如:“ http://127.0.0.1:8888”(ALPHA)

  • proxy_handler:指定您自己的代理处理程序

我想使用pybind11将python嵌入我的C ++应用程序中。 如何传递关键字参数?我到目前为止:

#include <pybind11/embed.h> // everything needed for embedding
#include <iostream>
namespace py = pybind11;

int main()
{
    py::scoped_interpreter guard{}; // start the interpreter and keep it alive

    py::module calc = py::module::import("calc");
    py::object result = calc.attr("__init__")("IGname", "IGpassword");

    int i;
    std::cin >> i;
}

1 个答案:

答案 0 :(得分:0)

我找到了正确的文档:https://pybind11.readthedocs.io/en/stable/advanced/pycpp/object.html

由于发生了其他一些问题,我无法对其进行测试,但这是可以解决的地方。