PEP 757:用于导入导出Python整数的C API

PEP 757:用于导入导出Python整数的C API

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

Python 3.13 alpha 2新增了一个新的C API,用于导入和导出Python整数,为gmpy2、SAGE和Python-FLINT等项目提供了一个高效的抽象。这使得Python可以在不破坏这些项目的情况下改变其内部结构。

🎯

关键要点

  • Python 3.13 alpha 2新增了一个新的C API,用于导入和导出Python整数,特别是PyLongWriter_Create()和PyLong_AsDigitArray()函数。
  • gmpy2、SAGE和Python-FLINT等项目直接访问Python内部结构(PyLongObject结构)或使用低效的临时格式(如Python-FLINT的十六进制字符串)来导入和导出Python整数对象。
  • Python 3.12中,Python整数的实现发生了变化,增加了标签和“紧凑值”。
  • 在3.13 alpha 1版本中,私有的未记录的_PyLong_New()函数被移除,但这些项目仍在使用该函数导入Python整数,因此在3.13 alpha 2中恢复了该私有函数。
  • 需要一个公共的高效抽象,以便在不暴露实现细节的情况下将Python与这些项目接口,这样Python可以在不破坏这些项目的情况下改变其内部结构。
➡️

继续阅读