如果你查看的文档
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),对称性很好。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)