结构类随机访问

struct.Struct允许您将Python对象编码为结构化内存.
它接受格式字符串,并选择一个缓冲区和偏移到/from
要读/编写结构.您如何看待随机访问
结果?
(未生产)
30
这是PEP还是仅提交补丁?

# 回答1


Castironpi在2008年8月25日星期一13:03:09 -0700写道:
30
我不喜欢它,因为我不喜欢在元组上访问索引的原因
或代表"记录"的列表 - 数字非常有意义.
组件的名称导致更容易理解源代码,
因此,我希望使用`ctypes'或`construct'创建这样的记录.
再见,
marc'blackjack'rintsch
# 回答2


在8月25日,4:25*PM,Marc'Blackjack'Rintsch 30

我不喜欢它,因为我不喜欢在元组上访问索引的原因
或代表"记录"的列表 - 数字非常有意义. *
组件的名称导致更容易理解源代码,
因此,我希望使用`ctypes'或`construct'创建这样的记录.
再见,
* * * * MARC'二十一点'Rintsch
我对速度收益感兴趣,所以您不必重建
整个"记录"只是为了读/写一个"字段". CTYPES如何?

# 回答3


8月25日,4:49*PM,Castironpi 我对速度收益感兴趣,所以您不必重建
整个"记录"只是为了读/写一个"字段". *在CTYPES中如何?
在"名称tuple"类型之后建模构造函数.
(未生产)
30
(10、20、30、0.5,'abc')
您仍然可以在顺序访问中获得边际速度收益.你避免
N-1物体的构造.
# 回答4


Castironpi在2008年8月25日星期一14:49:14 -0700写道:
只有访问的字段被转换.
再见,
marc'blackjack'rintsch
# 回答5


8月25日,11:47*pm,marc'blackjack'rintsch 只有访问的字段被转换.
再见,
* * * * MARC'二十一点'Rintsch
我知道.我在问如何写'unpack_from(buf,off,2)',
当BUF是非ctypy型缓冲区时.
# 回答6


8月26日,12:41*上午,Castironpi 我知道. *我在问如何写'unpack_from(buf,off,2)',
当BUF是非ctypy型缓冲区时.
带有CTYPES的代码比我想象的要优雅.
从ctypes导入 *
原型= pyfunctype(c_int,py_object,pointer(c_void_p),
指针(C_UINT))
pyobject_aswritebuffer = prototype((" pyobject_aswritebuffer",
Pythonapi)))
def refas(buf,offset,tp):
'''返回| tp |的实例这是指|偏移|字节进入
缓冲区| buf | '''
_b,_s = c_void_p(0),c_uint(0)
pyobject_aswritebuffer(buf,byref(_b),byref(_s))#should shour
0
c = cast(_b.Value+偏移,指针(TP))
返回C.CONTENTS
'tp'可以是从ctypes.structure派生的任何类. 'buf'
可以是支持缓冲协议的任何对象,包括
'mmap'.记住什么时候 pping指针存储偏移,而不是内存 地址. 我想知道这是如何受到支持的 平台和版本. 我将来可以依靠这个吗?

标签: python

添加新评论