Henkk

导航

python C API常用函数介绍

Python C API 提供了一组函数和宏,允许开发者在C或C++代码中与Python解释器进行交互。以下是一些常用的 Python C API 函数和宏:

1. **初始化和结束 Python 解释器**:
- `Py_Initialize()`:初始化 Python 解释器。
- `Py_Finalize()`:结束 Python 解释器。

-`Py_SetProgramNam(const wchar_t *)`函数 :设置Python解释器的路径

-`Py_SetProgramName(const wchar_t *)`函数 :设置 Python 解释器的程序名 这个程序名通常用于生成错误消息、警告和其他与程序标识相关的信息

-`PyRun_SimpleString()'宏:用于在 Python 解释器中执行简单的 Python 代码字符串

-`Py_DecodeLocale(const char *,size_t *size)`函数 :函数用于将本地编码的字符串转换为 Python Unicode 对象 因为 Python 3 中默认使用 Unicode 字符串。通过使用 Py_DecodeLocale 函数,你可以将本地编码的字符串转换为 Python 可以处理的 Unicode 格式

2. **对象操作**:
- `PyObject`:Python 对象的基本类型。
- `Py_INCREF(obj)` 和 `Py_DECREF(obj)`:增加和减少对象的引用计数。
- `Py_BuildValue(format, ...)`:根据格式化字符串创建 Python 对象。类似C语言中的于printf函数
- `PyArg_ParseTuple(args, format, ...)`:解析传入的参数元组。

3. **模块和导入**:
- `PyImport_ImportModule(name)`:导入指定名称的 Python 模块。
- `PyModule_AddObject(module, name, obj)`:向模块添加对象。

4. **函数和方法**:
- `PyObject_CallObject(func, args)`:调用 Python 函数或方法。
- `PyObject_GetAttrString(obj, name)`:获取对象的属性。
- `PyObject_SetAttrString(obj, name, value)`:设置对象的属性。

5. **异常处理**:
- `PyErr_Occurred()` 和 `PyErr_Print()`:检查和打印 Python 异常。
- `PyErr_SetString(type, message)`:设置异常消息。

6. **字符串和编码**:
- `PyUnicode_FromString(str)` 和 `PyUnicode_AsUTF8(obj)`:字符串和 UTF-8 编码之间的转换。
- `PyUnicode_DecodeFSDefault(str)`:将文件系统默认编码的字节序列解码为 Python Unicode 对象。

7. **列表和元组**:
- `PyList_New(size)`:创建一个新的 Python 列表。
- `PyTuple_Pack(size, ...)`:打包参数为元组。

8. **字典**:
- `PyDict_New()`:创建一个新的 Python 字典。
- `PyDict_SetItem(dict, key, value)`:向字典中添加键值对。

9. **模块和函数定义**:
- `PyMethodDef`:定义 Python 模块中的函数。
- `PyModuleDef`:定义 Python 模块。

这些是 Python C API 中一些常用的函数和宏,用于在 C 或 C++ 代码中与 Python 解释器进行交互。根据具体需求,开发者可以使用这些函数来操作 Python 对象、调用 Python 函数、处理异常等。

posted on 2024-07-08 18:08  Henkk  阅读(3)  评论(0编辑  收藏  举报