bytes()

Функция bytes() создаёт неизменяемую последовательность байтов со значениями 0..255. Подходит для сетевых пакетов, бинарных файлов, хешей и любых данных, которые не должны меняться после создания.

Сигнатура

bytes()
bytes(int)
bytes(iterable_of_ints)
bytes(string, encoding[, errors])
bytes(bytes_or_buffer)

Возвращает: объект bytes.

Примеры

Создание:

print(bytes())
print(bytes(4))
print(bytes([0x41, 0x42, 0x43]))
print(bytes("Алаш", "utf-8"))
b''
b'\x00\x00\x00\x00'
b'ABC'
b'\xd0\x90\xd0\xbb\xd0\xb0\xd1\x88'

Кодирование строки:

text = "AlashEd Wiki"
data = text.encode("utf-8")
print(data)
print(bytes(text, "utf-8") == data)
b'AlashEd Wiki'
True

Литерал b"..." — тот же bytes:

pkt = b"\xAA\x55HELLO"
print(type(pkt))
print(pkt[0], pkt[1])
print(pkt[2:])
<class 'bytes'>
170 85
b'HELLO'

Неизменяемость — попытка изменить вызовет ошибку:

data = bytes([1, 2, 3])
try:
    data[0] = 99
except TypeError as e:
    print("Ошибка:", e)
Ошибка: 'bytes' object does not support item assignment

Сравнение хешей:

import hashlib
h1 = hashlib.sha256(b"alash").digest()
h2 = hashlib.sha256(b"alash").digest()
print(type(h1))
print(h1 == h2)
print(h1.hex()[:16])
<class 'bytes'>
True
42aa6e7d0c1f3b9a

См. также

Примечание

Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.