2024-09-29 23:18:34 发布
网友
我尝试使用ctypes从内部python结构中提取数据。也就是说,我试图读取xrange中的4个字段:
typedef struct { PyObject_HEAD long start; long step; long len; } rangeobject;
在python内部有没有获取这些字段的标准方法?在
ctypes模块不是用来访问Python内部的。ctypes允许您用C术语处理C库,但是使用Python进行编码。在
您可能需要一个C扩展,这在很多方面与ctypes相反。使用C扩展,可以用Python术语处理Python代码,但是用C语言处理代码
更新:既然您想要纯Python,为什么需要访问内置xrange对象的内部呢?xrange非常简单:用Python创建自己的xrange,然后用它做您想做的事情。在
您无需ctypes即可访问所需的数据:
ctypes
>>> obj = xrange(1,11,2) >>> obj.__reduce__()[1] (1, 11, 2) >>> len(obj) 5
注意,__reduce__()方法正是用于序列化的。有关详细信息,请阅读this chapter in documentation。在
__reduce__()
更新:但是您也可以使用ctypes访问内部数据:
ctypes模块不是用来访问Python内部的。ctypes允许您用C术语处理C库,但是使用Python进行编码。在
您可能需要一个C扩展,这在很多方面与ctypes相反。使用C扩展,可以用Python术语处理Python代码,但是用C语言处理代码
更新:既然您想要纯Python,为什么需要访问内置xrange对象的内部呢?xrange非常简单:用Python创建自己的xrange,然后用它做您想做的事情。在
您无需
ctypes
即可访问所需的数据:注意,
__reduce__()
方法正是用于序列化的。有关详细信息,请阅读this chapter in documentation。在更新:但是您也可以使用
^{pr2}$ctypes
访问内部数据:相关问题 更多 >
编程相关推荐