Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Chapter 6. Embedding

Boost , Boost.Python Reference Manual , Boost.Python Reference Manual

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Chapter 6. Embedding

Разоблачает механизм встраивания интерпретатора Python в код C++.

object eval(str expression,
            object globals = object(),
            object locals = object());

Effects

Оцените выражение Python из выражения в контексте, указанном в словарях глобалов и местных жителей.

Returns

Пример объекта, который содержит значение выражения.

object exec(str code,
            object globals = object(),
            object locals = object());

Effects

Исполните исходный код Python из кода в контексте, указанном в словарях globals и locals.

Returns

Пример объекта, который содержит результат выполнения кода.

object exec_file(str filename,
                 object globals = object(),
                 object locals = object());

Effects

Исполните исходный код Python из файла, названного по имени файла, в контексте, указанном в словарях globals и locals.

Returns

Пример объекта, который содержит результат выполнения кода.

Следующий пример демонстрирует использование импорта и exec для определения функции в Python, а затем вызов его из C++.

#include <iostream>
#include <string>
using namespace boost::python;
void greet()
{
  // Retrieve the main module.
  object main = import("__main__");
  // Retrieve the main module's namespace
  object global(main.attr("__dict__"));
  // Define greet function in Python.
  object result = exec(
    "def greet():                   \n"
    "   return 'Hello from Python!' \n",
    global, global);
  // Create a reference to it.
  object greet = global["greet"];
  // Call it.
  std::string message = extract<std::string>(greet());
  std::cout << message << std::endl;
}

Вместо того, чтобы вставлять скрипт python в строку, мы также можем хранить его в файле.

def greet():
   return 'Hello from Python!'

И вместо этого выполнить это.

  // ...
  // Load the greet function from a file.
  object result = exec_file(script, global, global);
  // ...
}

PrevUpHomeNext

Статья Chapter 6. Embedding раздела Boost.Python Reference Manual Boost.Python Reference Manual может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Boost.Python Reference Manual ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 05:25:49/0.0021989345550537/0