Python內置函數—bytearray


英文文檔:

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 <= 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)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM