Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-bytes()与struct.pack()的比较_Python_Python 3.x - Fatal编程技术网

Python-bytes()与struct.pack()的比较

Python-bytes()与struct.pack()的比较,python,python-3.x,Python,Python 3.x,我只是好奇,但自从我学习python以来,我一直在使用bytes()将内容转换为字节。直到最近,我才看到struct.pack()。我没有费心学习如何使用它,因为我认为它基本上与bytes()做了相同的事情。但似乎许多人更喜欢使用struct.pack()。为什么?一个比另一个有什么优势 他们做两件不同的事情;比较字节(1234)与结构包(“!H”,1234)。第一个只提供了一个4字节的字符串,表示包含1234个空字节的numberbytes对象;第二个提供了一个两字节的字符串,其中包含整数的(

我只是好奇,但自从我学习python以来,我一直在使用
bytes()
将内容转换为字节。直到最近,我才看到
struct.pack()
。我没有费心学习如何使用它,因为我认为它基本上与
bytes()
做了相同的事情。但似乎许多人更喜欢使用
struct.pack()
。为什么?一个比另一个有什么优势

他们做两件不同的事情;比较
字节(1234)
结构包(“!H”,1234)
。第一个只提供了一个4字节的字符串,表示包含1234个空字节的number
bytes
对象;第二个提供了一个两字节的字符串,其中包含整数的(big-endian)值

(编辑:删除了与Python 2无关的
bytes(1234)

bytes()
的定义按字面意思执行:

返回一个新的“bytes”对象,它是一个不可变的字节序列
0范围内的整数是的,我当时错过了。