【问题标题】:Why does a bytes object converts to int when get only one byte? [duplicate]为什么一个字节对象在只获得一个字节时会转换为 int? [复制]
【发布时间】:2021-04-22 11:37:25
【问题描述】:

行为显示在代码中:

>>> b = bytes(b'asdf')
>>> print(type(b))
<class 'bytes'>
>>> print(type(b[0]))
<class 'int'>

为什么当我从 b[0] 这样的字节对象中获取一个字节时,它会将其转换为 int。

【问题讨论】:

  • 使用 slice 将其作为字节获取 type(b[:0])
  • 你有相同的列表a = [1,2,3] - type(a) 给出&lt;class 'list'&gt;type(a[0]) 给出&lt;class 'int'&gt; 而不是&lt;class 'list'&gt;type(a[:0]) 仍然给出&lt;class 'list'&gt;bytes 可能也是如此 - 它可能意味着 "list of integers" 和当 y
  • 这是预期的 documented 行为:“字节对象实际上表现得像不可变的整数序列,序列中的每个值都受到限制,使得 0

标签: python python-3.x byte


【解决方案1】:

bytes() 函数返回一个字节对象。因此,您的示例中的 b 是一个不可变的字节序列。序列的每个元素都是无符号整数,可通过索引访问。

【讨论】:

    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    相关资源
    最近更新 更多