繁体   English   中英

字节的行为从py2更改为py3

[英]Behavior change of bytes from py2 to py3

关于这个问题的讨论之后,我感到很好奇。 看来在python3中bytes()的行为已更改。 py3的文档中,它现在被列为内置函数,除了结果是不可变的以外,它的行为与bytearray()相同。 在py2 docs中,它不会出现在同一位置。

在研究文档一段时间时,我真的找不到任何详细说明从2变为3的变化,但是看起来确实有。 有什么区别,为什么要更改?

从评论中的链接问题中有人提到了py3

bytes(1)返回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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM