字节数组引用与值类型?

时间:2018-09-08 22:09:17

标签: python arrays pass-by-reference

在Python中,当将字节数组传递给函数时,它是通过引用还是通过值传递的?

在Python 3.7中,我试图模拟HTTPResponse对象以进行测试。当我从http.client.HTTPResponse对象内部复制代码时,得到的结果与标准库得到的结果不同。

我的代码:

#I call the mock buffer like this
intBytesBuffered = self.HTTPResponseMock.readinto(tempBuffer)

HTTPResponseMock

def read(self, amt = None):

    if amt is not None:
        # Amount is given, implement using readinto
        b = bytearray(amt)
    else:
        b = bytearray(len(self.MockedContentBuffer))

    n = self.readinto(b)
    return memoryview(b)[:n].tobytes()

def readinto(self, b):
    """docstring"""

    #mvb = memoryview(b)
    bufferSize = len(b)
    contentSize = len(self.MockedContentBuffer)
    b.clear()
    if bufferSize >= contentSize:
        b = self.MockedContentBuffer
    else:
        b = self.MockedContentBuffer[0:bufferSize]
        del self.MockedContentBuffer[0:bufferSize]

    return len(b)
here行436-500中找到来自http.client.HTTPResponse的

Relevent函数

标准库中最重要的摘录在这里是read调用readinto的地方:

b = bytearray(amt)
n = self.readinto(b)
return memoryview(b)[:n].tobytes()

标准库在调用缓冲区方面的工作与我差不多,但是当运行该库时,摘录中的字节变量b将返回其中的数据。当我致电read时,tempBuffer返回空吗?

0 个答案:

没有答案