我一直在努力探索python商店如何在我的系统中签署多头。
不确定这是方法,我试过buffer(long(-10))
希望它会让我更接近。
但我有TypeError: buffer object expected
。
来自help(buffer)
:
class buffer(object)
| buffer(object [, offset[, size]])
|
| Create a new buffer object which references the given object.
| The buffer will reference a slice of the target object from the
| start of the object (or at the specified offset). The slice will
| extend to the end of the target object (or with the specified size).
我认为一切都是python中的一个对象,我解释了这个文档字符串,以便我可以将任何对象提供给缓冲区的init。似乎并非如此。
你能帮我理解发生了什么吗?
答案 0 :(得分:2)
仅buffer()
function 适用于支持缓冲协议的对象:
object 参数必须是支持缓冲区调用接口的对象(例如字符串,数组和缓冲区)。
请注意,该功能实际上已弃用;它已基本上被memoryview()
取代,返回memoryview
type。这仍然会不让您深入了解Python长整数的内部结构,因为该函数仅适用于支持缓冲协议的对象。
Python 3文档包含有关C API documentation中的缓冲区协议的更多信息:
Python中可用的某些对象包装对底层内存数组或缓冲区的访问。
[...]
虽然这些类型中的每一个都有自己的语义,但它们共享由可能大的内存缓冲区支持的共同特征。在某些情况下,希望直接访问该缓冲区而无需中间复制。
因此,这些函数旨在有效地访问更大的数据块,而不是让您深入了解底层的C结构。