gpt4 book ai didi

python - 字节从 py2 到 py3 的行为变化

转载 作者:行者123 更新时间:2023-11-28 22:53:59 25 4
gpt4 key购买 nike

this question 上进行讨论后我很好奇. bytes() 的行为似乎在 python3 中发生了变化。在 the docs for py3它现在被列为内置函数,其行为与 bytearray() 相同,但结果是不可变的。它没有出现在 py2 文档中的相同位置。

在翻阅文档一段时间后,我真的找不到任何详细说明从 2 到 3 发生了什么变化,但看起来肯定有。有什么区别,为什么要更改?

从有人评论的关于 py3 的评论中的链接问题

bytes(1) returns b'00'

但在 2.7.5

>>> bytes(1)
'1'

最佳答案

Python 3 bytes 构造函数采用可选的 int 参数指定要输出的字节数。使用该构造函数将所有字节初始化为 0 (\x00),因此 bytes(1) == b'\x00'

Python 2 bytes 构造函数与 str 相同,因此只是将其参数字符串化:

Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13 2013, 13:18:45) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> bytes is str
True

关于python - 字节从 py2 到 py3 的行为变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18617674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com