讨论发生后我很好奇这个问题 https://stackoverflow.com/questions/18616657/how-to-encode-integer-in-to-base64-string-in-python-3。看来,的行为bytes()
python3 中发生了变化。在py3 的文档 http://docs.python.org/3.1/library/functions.html它现在被列为内置函数,其行为与bytearray()
除了结果是不可变的。它没有出现在 py2 文档中的同一位置。
在深入研究文档一段时间后,我确实找不到任何详细说明从 2 到 3 发生了什么变化的内容,但看起来确实有一些变化。有什么区别以及为什么要改变?
从评论中的链接问题中有人评论了 py3
bytes(1) 返回 b'00'
但在2.7.5中
>>> bytes(1)
'1'
蟒蛇3bytes
构造函数需要一个可选的int
参数指定要输出的字节数。所有字节都初始化为 0 (\x00
)与该构造函数,所以bytes(1) == b'\x00'
.
蟒蛇2bytes
构造函数与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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)