std.ffi.python 包
功能介绍
ffi.python 包提供仓颉与 Python 语言互操作调用的能力,以兼容强大的计算和 AI 生态。
本包为用户提供了以下能力:
- 
Python 包为用户提供了全局解释器对象 Python,其类型为PythonBuiltins,通过该解释器对象可以:- 加载、卸载解释器资源;
- 获取当前使用的 Python 解释器版本;
- 导入及使用 Python 的三方模块。
 详细介绍及使用请参见《仓颉语言用户指南》(跨语言互操作/与 Python 语言互操作/ PythonBuiltins内建函数类)。
- 
Python 包提供了 Python 数据类型与仓颉类型之间的互相转换。如 PyBool/PyLong/PyFloat/PyString/PyTuple/PyList/PyDict/PySet, 它们均继承自 PyObject类型,PyObject类型提供了所有类型的通用接口,如成员变量访问、函数访问、到仓颉类型转换等。PyObject类型的子类提供了每个类型独有的函数接口。详细映射关系介绍及使用请参见《仓颉语言用户指南》(跨语言互操作/与 Python 语言互操作/类型映射)。 
- 
Python 包支持简单的函数注册及 Python 对仓颉函数调用。Python 回调仓颉代码需要通过 C 作为中间层进行调用,并且使用到了 Python 的三方库: ctypes以及_ctypes。详细映射关系介绍及使用请参见《仓颉语言用户指南》(跨语言互操作/与 Python 语言互操作/仓颉与 Python 的注册回调),该章节详细介绍了在回调过程中,两边参数和返回值的类型映射情况以及调用方式。 
注意:
- 本包暂不支持 Windows 平台。
API 列表
常量&变量
接口
类
| 类型名 | 功能 | 
|---|---|
| PyBool | 表示 Python 的布尔类型。 | 
| PyCFunc | 表示 Python 的 C 风格函数类型。 | 
| PyDict<K, V> where K <: Hashable & Equatable<K> & PyFFIType | 表示 Python 的字典类型。 | 
| PyFloat | 表示 Python 的浮点数类型。 | 
| PyList<T> where T <: PyFFIType | 表示 Python 的列表类型。 | 
| PyLong | 表示 Python 的整数类型。 | 
| PyObj | 表示 Python 所有类型的父类。 | 
| PyObjIterator | 表示 PyObj的迭代器类型。 | 
| PyString | 表示 Python 的字符串类型。 | 
| PySet<T> where T <: Hashable & Equatable<T> & PyFFIType | 表示 Python 的集合类型。 | 
| PySlice<T> where T <: Countable<T> & Comparable<T> & Equatable<T> & CjObj | 表示 Python 的区间类型。 | 
| PyTuple | 表示 Python 的元组类型。 | 
| PythonLogger | 表示 ffi.python包的日志类型。 | 
| PythonBuiltins | 表示 Python 的内建函数集合。 | 
异常类
| 类型名 | 功能 | 
|---|---|
| PythonException | 表示来自 ffi.python包的异常类型。 |