Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> boost::python, область применения 
:(
    Опции темы
chaos
Дата 27.2.2008, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



День добрый!!
подскажите знающие люди, для чего можно использовать встраивание питона в программы на С++?
Интересуют области применения, примеры.

пришло на ум только использования в качестве чтения конфигурации smile) например:

Здравствуйте обитетели данного форума 
в послденее время в уме "вертится" связка Python + C++ (boost::python)
очень хочется знать для чего такая связка нужна. что можно с этим делать. в чем + и -. примеры можно выдуманные и реальные 

мне на ум только пришло: использовать связку как удобный парсер конфигурации )))

маленький пример:

Код

Py_Initialize();

std::string script = "test.py";

boost::python::dict global;
boost::python::object result = boost::python::exec_file(script.c_str(), global, global);

std::cout << boost::python::extract<int>(global["number"]) << std::endl;


test.py
Код

number = 4200


но как-то это....сильно извращенно smile

чуется мне что тут зарыт горадо большей потенциал.

Вообщем кто знает, расскажите

Заранее благодарен! 


PM WWW   Вверх
bsa
Дата 27.2.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



В некоторых современных играх есть возможность добавления функциональности с помощью скриптовых языков (например, серия X). Думаю, что эта тенденция не только на игры распространяется.
PM   Вверх
Mayk
Дата 27.2.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(bsa @  27.2.2008,  16:07 Найти цитируемый пост)
Думаю, что эта тенденция не только на игры распространяется.

Ага, например подобное есть в модельере Blender и,кажется, в gaim'е.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
gammoff
Дата 7.4.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.4.2008

Репутация: нет
Всего: нет



Всем привет! Хотелось бы прояснить одну вещь по поводу встраивания питона. А именно:
Я экспортирую в питон интерфейс, который выглядит примерно так:

Код

//! \interface IGameState
//! Интерфейс к игровым состояниям
class IGameState
{
public:

    Здесь я кое-что пропустил, оставил только  главное...

    //! Вызывается каждый раз перед отрисовкой  кадра
    //! \param evt объект события отрисовки Ogre
    //! \return false, если игровой цикл  еобходимо прервать и true
    //! в противном случае
    virtual bool frameStarted(const Ogre:: FrameEvent& evt) = 0;

    //! Вызывается каждый раз после отрисовки  кадра
    //! \param evt объект события отрисовки Ogre
    //! \return false, если игровой цикл  еобходимо прервать и true
    //! в противном случае
    virtual bool frameEnded(const Ogre:: FrameEvent& evt) = 0;

};


но не экспортирую тип  Ogre:: FrameEvent. Зато этот тип находится в одном из уже установленных расширений Python (Python-Ogre). Далее  в файле со сценарием я создаю новый класс Python, который наследую от экспортированного интерфейса. Могу ли я в первой строчке файла со сценарием написать что-то вроде:

Код

from ogre.renderer.OGRE import *


(где ogre.renderer.OGRE - пространство имен, в котором находится тип Ogre::FrameEvent из установленного расширения)

и надеяться на то, что это заработает нормально?

Это сообщение отредактировал(а) gammoff - 7.4.2008, 21:45
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.