#python #c #pybind11
#python #c #pybind11
Вопрос:
Я использую pybind11 для вызова встроенной функции python, такой как range, в коде c . Но я нашел только способ вызвать функцию в модуле, подобном этому:
py::object os = py::module::import("os");
py::object makedirs = os.attr("makedirs");
makedirs("/tmp/path/to/somewhere");
Но встроенной функции python, такой как range, не нужно импортировать какие-либо модули, так как я могу использовать pybind11 для вызова range в коде c ?
Ответ №1:
Вы могли бы извлекать range
данные из globals
dict.
Ответ №2:
Вы также можете импортировать builtins
модуль, который содержит все встроенные функции python.
В вашем случае это было бы что-то вроде:
py::object builtins = py::module_::import("builtins");
py::object range = builtins.attr("range");
range(0, 10);