首页 > 编程语言 >python C API常用函数介绍

python C API常用函数介绍

时间:2024-07-08 18:08:01浏览次数:9  
标签:解释器 obj 函数 python Py Python 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 函数、处理异常等。

标签:解释器,obj,函数,python,Py,Python,API,字符串
From: https://www.cnblogs.com/henkk/p/18290493

相关文章

  • 使用Python下载Bing每日一图并设置为壁纸
    简介Bing搜索引擎每天都会展示一张精美的图片,这些图片不仅美丽,而且常常包含有趣的信息。想象一下,每天打开电脑,都能看到这样的美景,是不是很棒呢?本文将介绍如何使用Python脚本自动化下载Bing每日一图,并将其设置为我们的桌面壁纸。环境准备在开始之前,请确保你的计算机上安装了Pyth......
  • mysql函数大全
    描述:巩固一下,避免和oracle函数混淆。字符串函数函数描述ASCII(str)返回字符串str的第一个字符的ASCII码CHAR_LENGTH(str)返回字符串str的字符数CONCAT(str1,str2,...strn)将字符串str1、str2、...strn合并为一个字符串CONCAT_WS(splitStr,str1,str2,.........
  • Python OpenCv对规则物体进行实时检测
    前言很多情况需要对物体进行检测,常规的方法也有很多种。但是检测出来的边缘一般都是非常多,结果也是非常杂乱的,显然这种结果不是我们想要的。如果颜色相较于背景非常鲜艳的可以调节hsv阈值再进行检测,如果是一直在运动的物体可以通过帧差法进行物体检测,还有很多高深的算法也可以进......
  • 服务器开发——setsockopt函数
    setsockopt()setsockopt()是一个用于设置套接字选项的Unix系统调用。它允许程序员修改套接字的行为,以适应不同的网络环境和应用程序需求。1.函数介绍函数原型:#include<sys/socket.h>/***level:选项所在的协议层。例如,SOL_SOCKET表示套接字层,IPPROTO_TCP或IPPROTO......
  • python logger 使用记录
    1.简单使用importlogging#基本设置#如果没有设置,则可以使用该设置用于显示logging.basicConfig(level='DEBUG',datefmt='%Y-%m-%d%H:%M:%S',format='%(asctime)s[%(name)s]%(levelname)s%(message)s')logger=logging.getLogger(......
  • 学习canvas(一些常用api)
    当然,以下是这些常用CanvasAPI的总结,按照Markdown格式编写:常用CanvasAPI总结1.获取绘图上下文constcanvas=document.getElementById('myCanvas');constctx=canvas.getContext('2d');//或'webgl'2.绘制矩形ctx.fillStyle='blue';ctx.fillRect(1......
  • 【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践
    随着航空、航天、近地空间遥感平台的持续发展,遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升,呈现出大数据特征。这为相关研究带来了新机遇,但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域、多尺度海量遥感数据处理需求。为解......
  • Python热门面试题三
    Python中的pass语句有什么作用?在Python中,pass语句是一个空操作(NOP,nooperation);它什么也不做,只作为一个占位符。其主要作用是在语法上需要语句的地方,但程序执行时又不需要执行任何操作时使用。pass语句可以用在函数的定义中、条件语句的分支里、循环结构中或者任何需要语......
  • 利用Python进行数据分析PDF下载经典数据分享推荐
    本书由Pythonpandas项目创始人WesMcKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例,可以帮助你高效解决一系列数据分析问题。......
  • [UVM]IC验证自动结束仿真函数——uvm_top.set_timeout/set_report_max_quit_count
    Title:[UVM]IC验证自动结束仿真函数——uvm_top.set_timeout/set_report_max_quit_count文章目录1-前言2-uvm_top.set_timeout3-set_report_max_quit_count4-运用5-小结1-前言​数字IC验证过程中,需要运行不同Testcase,有些TC会因为TC配置、TB机制等原因,导致m......