0
下面是本實施例的精簡形式:http://www.boost.org/doc/libs/1_51_0/libs/python/doc/v2/exec.html#examplesimport()和exect_file()返回的對象的生命週期是多少?
Python函數從C調用++,存儲在文件script.py中:
def greet():
return 'Hello from Python!'
的C++代碼以執行該Python函數:
#include <iostream>
#include <string>
#include <boost/python.hpp>
using namespace boost::python;
void greet()
{
object main = import("__main__");
object global(main.attr("__dict__"));
object result = exec_file("script.py", global, global);
object greet = global["greet"];
std::string message = extract<std::string>(greet());
std::cout << message << std::endl;
}
我的問題是:我需要保持主要,全球和結果活着的物體能夠呼叫迎接?
你能舉一個資料來源嗎? –
@spaceknarf我用'main','global'和'result'對象對其進行了測試,它的工作原理和valgrind沒有(額外的)投訴。 – James