在 Python 3 中,“bytes(n)”函数生成长度为“的字节字符串” n”而不是将“n”转换为二进制表示形式。这种看似奇怪的行为引起了 Python 开发人员的困惑。
为了理解这种行为,让我们深入研究该函数的历史。在 Python 3.2 之前,“bytes(n)”创建了一个零字节序列。这允许轻松创建固定长度的字节数组,通常用于网络或数据结构。然而,随着 Python 3 的发展,焦点转向了面向对象的设计。因此,引入了“bytes”对象,提供了一系列专门为处理二进制数据而定制的方法和操作。
随着“bytes”对象的引入,“bytes(n)”的行为”被重新定义。它现在分配了一个初始化为零值的字节序列。此更改是为了与面向对象的方法保持一致,为处理二进制数据提供一致且直观的界面。
或者,如果目的是将整数转换为二进制表示形式,则“to_bytes”可以采用的方法。此方法返回整数的字节表示形式,提供对字节顺序和符号性的更好控制。例如:
<code class="python">(1024).to_bytes(2, byteorder='big')</code>
此代码片段以大端格式返回整数 1024 的字节等效项:
<code class="python">b'\x04\x00'</code>
对于有符号整数,“to_bytes”方法提供了一个附加参数“signed”,指定二进制表示的符号。
以上是为什么 Python 中的'bytes(n)”生成字节字符串而不是二进制整数?的详细内容。更多信息请关注PHP中文网其他相关文章!