Smi*_*ith 11 python byte types version
在python 3.2中,我可以轻松地更改对象的类型.例如 :
x=0
print(type (x))
x=bytes(0)
print(type (x))
Run Code Online (Sandbox Code Playgroud)
它会给我这个:
<class 'int'>
<class 'bytes'>
Run Code Online (Sandbox Code Playgroud)
但是,在python 2.7中,似乎我不能用同样的方法来做到这一点.如果我做相同的代码,它给我这个:
<type 'int'>
<type 'str'>
Run Code Online (Sandbox Code Playgroud)
如何将类型更改为字节类型?
Mar*_*ers 13
您没有更改类型,而是为变量分配不同的值.
你也在考虑python 2.x和3.x之间的一个基本区别; 大大简化了2.x类型unicode已经替换了str它本身已被重命名的类型bytes.它恰好在您的代码中工作,因为更新的Python 2版本已添加bytes为别名,str以便于编写在两个版本下都能运行的代码.
换句话说,您的代码正在按预期工作.
如何将类型更改为字节类型?
你不能,Python 2.7中没有'bytes'这样的类型.
从Python 2.7文档(5.6序列类型):"有七种序列类型:字符串,Unicode字符串,列表,元组,字节数组,缓冲区和xrange对象."
从Python 3.2文档(5.6 Sequence Types):"有六种序列类型:字符串,字节序列(字节对象),字节数组(bytearray对象),列表,元组和范围对象."