Я хочу использовать Python C API для экранирования строки. Позже эта строка будет использоваться в Python Eval в качестве аргумента для метода Python, поэтому в настоящее время я использую эту конструкцию:
char* Escape(char* string) {
PyObject *var = PyUnicode_FromString(string);
free(string);
PyObject *varRepr = PyObject_Repr(var);
char* str = PyUnicode_AsUTF8(varRepr);
Py_DECREF(var);
Py_DECREF(varRepr);
return str;
}
Есть ли более эффективный / лучший способ?