在Python 3中将字符串转换为字节的最佳方法?

在Python 3中将字符串转换为字节的最佳方法?,第1张

在Python 3中将字符串转换为字节的最佳方法?

如果你查看的文档

bytes
,它将指向
bytearray

bytearray
([源
[
,编码
[
,错误
]]]

返回一个新的字节数组

bytearray
类型是一个可变的整数序列,范围为
0 <= x <256
。它具有可变序列类型中介绍的大多数可变序列的常用方法,以及字节类型具有的大多数方法,请参见Bytes和字节数组方法。

可选的

source
参数可以通过几种不同的方式用于初始化数组:

如果是字符串,则还必须提供编码(以及可选的错误)参数;然后,

bytearray()
使用
str.enpre()
将字符串转换为字节。

如果它是整数,则数组将具有该大小,并将使用空字节初始化。

如果它是符合缓冲区接口的对象,则该对象的只读缓冲区将用于初始化

bytes
数组。

如果是可迭代的,则它必须是

0 <= x <256
范围内的整数的可迭代对象,这些整数用作数组的初始内容。

没有参数,将创建大小为0的数组。

因此,

bytes
除了编码字符串以外,还可以做更多的事情。这是
Pythonic
的用法,它允许你使用有意义的任何类型的源参数来调用构造函数。

对于字符串编码,我认为它

some_string.enpre(encoding)
比使用构造函数更具有
Pythonic
风格,因为它是最易于记录的文档-“使用此字符串并以这种编码方式对其进行编码”比
bytes(some_string, encoding)
- 更加清晰明了-当你使用构造函数。

编辑:我检查了Python源。如果将unipre字符串传递给bytes使用CPython,它将调用

PyUnipre_AsEnpredString
,它是enpre; 的实现。因此,如果你自称,则只是跳过了一个间接级别enpre。

另外,请参见

Serdalis
的评论-
unipre_string.enpre(encoding)
也是Python 风格的,因为它的反函数是
byte_string.depre(encoding)
,对称性很好。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4942943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存