如何在 Python 3 中初始化(“声明”)一个空的 bytes
变量?
我正在尝试接收字节块,然后将其更改为 utf-8 字符串。但是,我不确定如何初始化将保存整个字节系列的初始变量。这个变量叫做 msg
。我无法将其初始化为 None
,因为您无法添加 bytes
和 NoneType
。我无法将其初始化为 unicode 字符串,因为那样我将尝试将 bytes
添加到字符串中。此外,随着接收程序的发展,它可能会让我陷入一堆只包含部分字符的字节序列。我不能没有 msg
初始化,因为那样 msg
将在赋值之前被引用。以下是有问题的代码
def handleClient(conn, addr):
print('Connection from:', addr)
msg = ?
while 1:
chunk = conn.recv(1024)
if not chunk:
break
msg = msg + chunk
msg = str(msg, 'UTF-8')
conn.close()
print('Received:', unpack(msg))
原文由 tsteemers 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需使用空字节字符串
b''
。但是,重复连接到一个字符串涉及多次复制该字符串。可变的
bytearray
可能会更快:要将字节数组解码为字符串,请使用
msg.decode(encoding='utf-8')
。