Python 结构库附加了不需要的字符 'L'

Python Struct Library appending unwanted Char 'L'

我正在尝试为一些消息编写一个简单的序列化库。我让它工作,一切都很好,但由于某种原因,它一直在某些消息的末尾附加 'L'。从字面上看,从来没有任何其他字符,总是一个 L,并且总是指向相同的数据片段。虽然它似乎通常将 ​​L 贴在较大的数据块上,但我不知道发生了什么。

>>> a = messager(messager.genericHeader() + [0x1111, 0x2222, 0x33334444, 0xdeadbeefdeadbeef])
>>> b = a.serialize()
>>> b
'\xb0\xba\xfewGRYP\x00\x01\x00(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x11""33DD\xde\xad\xbe\xef\xde\xad\xbe\xef'

>>> c = a.deserialize(b)

>>> hex(c[0])
'0x1111'

>>> hex(c[1])
'0x2222'

>>> hex(c[2])
'0x33334444'

>>> hex(c[3])
'0xdeadbeefdeadbeefL'

据我所知,位串的末尾显然没有字节可以读作 L。有人知道这里发生了什么吗?我也可以展示一些代码,但我会尽量保持简短,因为字节字符串有望足以诊断此问题。

别担心,

打印的 'L' 显示该值为 long。

它实际上并没有对值做任何事情,只是它在打印时如何表示