在Python 2.7中将字符串更改为字节类型

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*中键入`str`是*bytes`类型. (5认同)

cda*_*rke 8

如何将类型更改为字节类型?

你不能,Python 2.7中没有'bytes'这样的类型.

从Python 2.7文档(5.6序列类型):"有七种序列类型:字符串,Unicode字符串,列表,元组,字节数组,缓冲区和xrange对象."

从Python 3.2文档(5.6 Sequence Types):"有六种序列类型:字符串,字节序列(字节对象),字节数组(bytearray对象),列表,元组和范围对象."