Байт может быть представлен как int
ниже 2 ** 8 или меньше 256. Это для упрощения возможности перетаскивания байтов объекта байта.
Примечание. Когда вы создаете объект байта, онотображает:
bytes(iterable_of_ints) -> bytes
Это означает, что байтовый объект - это всего лишь несколько битов, но он превращен в закодированные байты.
Думайте об байтовом объекте как о списке байтов.Проверьте это:
>>> l = [1, 36, 233]
>>> b = bytes(l)
>>> l[0]
1
>>> b[0]
1
>>> l[0:1]
[1]
>>> b[0:1]
b'\x01'
Теперь о вопросе почему?
Каким другим способом можно представить байт?
A string уверенбудет представлять множество байтов с кодировкой , но не в том случае, если для него задана другая кодировка или не указана кодировка.
A кортеж не будет иметь смысла, поскольку может иметь что-нибудь внутри.Это включает в себя другие строки, числа с плавающей точкой и другие вещи, которые байт не будет представлять.
integer будет представлять только один байт, и кортеж целых чисел специально для этой цели будет работать.
Следовательно, кортеж из int
s будет составлять объект bytes
, и объект bytes
сможет декодироваться и кодироваться в строки для использования.int
будет единственным «чистым» способом представления одного байта внутри объекта bytes
.