Home  >  Article  >  Backend Development  >  Detailed introduction to Python’s built-in bytes function

Detailed introduction to Python’s built-in bytes function

高洛峰
高洛峰Original
2017-03-21 11:20:331773browse

English document:

class bytes([source[, encoding[, errors]]])

Return a new “bytes” object, which is an immutable sequence of integers in the range 0 <= x < ; 256. bytes is an immutable version of bytearray – it has the same non-mutating methods and the same indexing and slicing behavior.

Accordingly, constructor arguments are interpreted as for bytearray().

Description:

1. The return value is a new unmodifiable bytearray, each numeric element must be in the range of 0 - 255, it is a bytearrayfunction has the same behavior, the only difference is that the returned byte array cannot be modified.

2. When none of the three parameters are passed, a byte array with a length of 0 is returned

>>> b = bytes()
>>> b
b''
>>> len(b)
0</p>
<p style="text-align: left;"> 3. When the source parameter is a <a href="http://www.php.cn/wiki/57.html" target="_blank">string</a>, encoding Parameters must also be provided. The function converts the string into a byte array using the str.encode method </p>
<pre class="brush:php;toolbar:false">>>> bytes('中文') #需传入编码格式
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    bytes('中文')
TypeError: string argument without an encoding
>>> bytes('中文','utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'

4. When the source parameter is an integer, an empty byte array of the length specified by the integer is returned

>>> bytes(2)
b'\x00\x00'
>>> bytes(-2) #整数需大于0,用于做数组长度
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    bytes(-2)
ValueError: negative count

5. When the source parameter is an object object that implements the buffer interface, then the read-only method will be used to read the bytes into the byte array and return

6. When the source parameter is an iterable object, then the elements of this iterable object must conform to 0 <= x < 256 so that it can be initialized into the array

>>> bytes([1,2,3])
b'\x01\x02\x03'
>>> bytes([256,2,3])
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    bytes([256,2,3])
ValueError: bytes must be in range(0, 256)</p>
<p style="text-align: left;"> 7. Returning the array is not allowed Modify</p>
<pre class="brush:php;toolbar:false">>>> b = bytes(10)
>>> b
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> b[0]
>>> b[1] = 1 #不可修改
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    b[1] = 1
TypeError: 'bytes' object does not support item assignment
>>> b = bytearray(10)
>>> b
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
>>> b[1] = 1 #可修改
>>> b
bytearray(b'\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00')

The above is the detailed content of Detailed introduction to Python’s built-in bytes function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn