Как передать аргументы ключевого слова Python с помощью pybind11?

#python #c #embed #pybind11

#python #c #Внедрить #pybind11

Вопрос:

Учитывая эту функцию: __init__(username, password, **kwargs) с этими аргументами ключевого слова:

  • auto_patch: исправьте объекты api, чтобы они соответствовали общедоступному API. По умолчанию: False

  • drop_incompat_key: удалите ключи объекта api, которых нет в общедоступном API. По умолчанию: False

  • тайм-аут: интервал ожидания в секундах. По умолчанию: 15

  • api_url: переопределить базу URL-адресов api по умолчанию

  • cookie: сохраненная строка cookie из предыдущего сеанса

  • настройки: набор настроек из предыдущего сеанса

  • on_login: обратный вызов после успешного входа в систему

  • прокси: укажите прокси, например: ‘http://127.0.0.1:8888 ’ (АЛЬФА)

  • proxy_handler: укажите свой собственный обработчик прокси

Я хочу внедрить python в мое приложение на C с помощью pybind11. Как мне передать аргументы ключевого слова? Я так далеко:

 #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:

Я нашел правильную документацию:https://pybind11.readthedocs.io/en/stable/advanced/pycpp/object.html

Я не могу это протестировать, так как у меня возникают некоторые другие проблемы, но это то, что нужно сделать.