1. 程式人生 > >Python內置函數—bytearray

Python內置函數—bytearray

emp 以及 t對象 返回值 code div sig any 方式

英文文檔:

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

Return a new array of bytes. The bytearray class is a mutable sequence of integers in the range 0 <= x < 256. It has most of the usual methods of mutable sequences, described in Mutable Sequence Types, as well as most methods that the bytes type has, see Bytes and Bytearray Operations.

The optional source parameter can be used to initialize the array in a few different ways:

  • If it is a string, you must also give the encoding (and optionally, errors) parameters; bytearray() then converts the string to bytes using str.encode().
  • If it is an integer, the array will have that size and will be initialized with null bytes.
  • If it is an object conforming to the buffer interface, a read-only buffer of the object will be used to initialize the bytes array.
  • If it is an iterable, it must be an iterable of integers in the range 0 <= x < 256, which are used as the initial contents of the array
技術分享
    def __init__(self, source=None, encoding=None, errors=
strict): # known special case of bytearray.__init__ """ bytearray(iterable_of_ints) -> bytearray bytearray(string, encoding[, errors]) -> bytearray bytearray(bytes_or_buffer) -> mutable copy of bytes_or_buffer bytearray(int) -> bytes array of size given by the parameter initialized with null bytes bytearray() -> empty bytes array Construct a mutable bytearray object from: - an iterable yielding integers in range(256) - a text string encoded using the specified encoding - a bytes or a buffer object - any object implementing the buffer API. - an integer # (copied from class doc) """ pass
bytearray

返回一個新的字節數組。
bytearray類是range 0 < = x < 256的一個可變序列。
它有大多數可變序列的常用方法,在可變序列類型中描述,以及大多數字節類型的方法,參見字節和Bytearray操作。

可選的源參數可以用幾種不同的方式來初始化數組:

  • 如果它是一個字符串,那麽您還必須給出編碼(以及可選的錯誤)參數;bytearray()然後使用str.encode()將字符串轉換為字節。
  • 如果它是一個整數,那麽數組將具有這個大小,並將用null字節初始化。
  • 如果它是符合緩沖區接口的對象,則將使用對象的只讀緩沖區來初始化字節數組。
  • 如果它是可叠代的,那麽它必須是range 0 < = x < 256的整數的叠代,它被用作數組的初始內容

如果沒有參數,則創建一個大小為0的數組。

說明:
1. 返回值為一個新的字節數組
2. 當3個參數都不傳的時候,返回長度為0的字節數組

#!/usr/bin/python3

b = bytearray()
print(b)
print(len(b))

結果:

bytearray(b‘‘)
0

3. 當source參數為字符串時,encoding參數也必須提供,函數將字符串使用str.encode方法轉換成字節數組

b = bytearray(‘中文‘)

結果:

Traceback (most recent call last):
  File "D:/py/day001/day1/test.py", line 3, in <module>
    b = bytearray(‘中文‘)
TypeError: string argument without an encoding

encoding參數也必須提供,函數將字符串使用str.encode方法轉換成字節數組

b = bytearray(‘中文‘, ‘utf-8‘)
print(b)
print(len(b))

結果:

bytearray(b‘\xe4\xb8\xad\xe6\x96\x87‘)
6

4. 當source參數為整數時,返回這個整數所指定長度的空字節數組

#!/usr/bin/python3

b = bytearray(5)
print(b)
print(len(b))

執行結果:

bytearray(b‘\x00\x00\x00\x00\x00‘)
5

5. 當source參數為實現了buffer接口的object對象時,那麽將使用只讀方式將字節讀取到字節數組後返回

#!/usr/bin/python3

b = bytearray([1,2,3,4,5])
print(b)
print(len(b))

執行結果:

bytearray(b‘\x01\x02\x03\x04\x05‘)
5

6. 當source參數是一個可叠代對象,那麽這個叠代對象的元素都必須符合0 <= x < 256,以便可以初始化到數組裏

#!/usr/bin/python3

b = bytearray([1,2,3,4,5,256])
print(b)
print(len(b))

執行結果:

Traceback (most recent call last):
  File "D:/py/day001/day1/test.py", line 3, in <module>
    b = bytearray([1,2,3,4,5,256])
ValueError: byte must be in range(0, 256)

  

Python內置函數—bytearray