0
如何將C++字符串傳遞給我的Python函數?我想在我的C++應用程序中獲取字符串並在Python中解析它將C++字符串傳遞給Python
如何將C++字符串傳遞給我的Python函數?我想在我的C++應用程序中獲取字符串並在Python中解析它將C++字符串傳遞給Python
首先初始化所有需要的變量。
Py_Initialize();
object main_module = import("__main__");//boost::python objects
object dictionary = main_module.attr("__dict__");
運行代碼來創建一個變量並設置一個初始值並在python中打印它。
boost::python::exec("resultStr = 'oldvalue'", dictionary);
PyRun_SimpleString("print resultStr");//new value will reflect in python
從C++讀取相同的變量。
boost::python::object resultStr = dictionary["resultStr"];//read value from python to c++
std::string &processedScript = extract<std::string>(resultStr);
以上字典對象是像共享地圖。你可以從C++設置一個變量。 然後檢查python的新值。
dictionary["resultStr"] = "new value";//set the variable value
PyRun_SimpleString("print resultStr");//new value will reflect in python
玩得開心編碼。 謝謝。
查看[boost :: python](http://www.boost.org/doc/libs/1_47_0/libs/python/doc/) – GWW
或閱讀C API部分中的文檔。 –
關於我在做什麼的一些說明:我有一個C++中的float var,我想傳遞給一個將float作爲參數的Python函數。然而,Python中的變量輸出語句正在輸出亂碼 - 我懷疑浮點數具有不同的精度?在C++中,小數點後有7位,在Python中是6.所以我想將float轉換爲C++中的字符串,將其傳遞給Python,截斷小數點後第6位的數字,並將其轉換回浮點數。 – jyoung