// C++ 偽碼
Py_Initialize();
PyGILState_STATE gil = PyGILState_Ensure();
PyObject* pModule = PyImport_ImportModule("my_jieba_wrapper");
PyObject* pFunc = PyObject_GetAttrString(pModule, "cut");
PyObject* pArgs = PyTuple_Pack(1, PyUnicode_FromString(cppString));
PyObject* pResult = PyObject_CallObject(pFunc, pArgs);
const char* utf8 = PyUnicode_AsUTF8(pResult); // Python 3
// 處理 utf8 字串...
Py_DECREF(pArgs); Py_DECREF(pResult); Py_DECREF(pFunc); Py_DECREF(pModule);
PyGILState_Release(gil);
Py_Finalize();
import jieba
def cut(text):
# 不要 print!
return " ".join(jieba.cut(text))
嵌入 Python 呼叫 jieba 可行但維護成本高(環境一致性、GIL、編碼、部署)。優先評估 cppjieba 等原生 C++ 庫;若業務強依賴 Python 生態(如自定義詞典動態更新、複雜 NLP 管線),則嚴格遵循 GIL 與編碼規範,並編寫完整的單元測試覆蓋邊界情況。