На этом шаге мы рассмотрим особенности этого класса.
Объекты bytes представляют собой неизменяемые последовательности одиночных байтов (целых чисел в диапазоне 0 < x < 255).
См. документацию Python "bytes": https://docs.python.org/3/library/stdtypes.html#bytes.
В концептуальном плане они подобны объектам str и их также можно представить как неизменяемые массивы байтов.
Аналогично строковому типу, тип bytes имеет свой собственный литеральный синтаксис, предназначенный для создания объектов, и объекты этого типа пространственно эффективны. Объекты bytes не могут изменяться, но, в отличие от строковых объектов, для "изменяемых массивов байтов" есть специальный тип данных, который называется bytearray, или байтовый массив, в который они могут быть распакованы. Вы узнаете о нем подробнее в следующем шаге.
>>> arr = bytes((0, 1, 2, 3)) >>> arr[1] 1 # Байтовые литералы имеют свой собственный синтаксис: >>> arr b'\x00\x01\x02\x03' >>> arr = b'\x00\x01\x02\x03' # Разрешены только допустимые "байты": >>> bytes((0, 300)) Traceback (most recent call last): . . . . ValueError: bytes must be in range(0, 256) # Байты неизменяемы: >>> arr[1] = 23 Traceback (most recent call last): . . . . TypeError: 'bytes' object does not support item assignment >>> del arr[1] Traceback (most recent call last): . . . . TypeError: 'bytes' object doesn't support item deletion
На следующем шаге мы рассмотрим класс bytearray.