为什么你不能在 Python 中实习字节?

  • 本文关键字:字节 Python 不能 python
  • 更新时间 :
  • 英文 :


正如Python文档中提到的,sys.intern()只接受字符串对象。我理解sys.intern不支持可变类型的原因。但至少还有一种不可变类型是有意义的:bytes.

所以我的问题是:Python实习不支持bytes有什么特别的原因吗?

这是十年前在Python-Dev邮件列表中建议的。答案是:

主要区别在于sys.intern()将删除被实习生当所有外部引用消失时的字符串。它要么需要weakref'ability(这是str和bytes都缺乏的),要么需要对象析构函数的特殊配合(这就是为什么sys.intern()仅限于str而不能处理任意对象)。

显然可能添加对bytes的支持,但它似乎非常小,不是标准Python可能添加的东西。这并不妨碍您创建自己的等效函数,除非您想要它的全部原因是为了字典键查找速度。我从来没见过有人用bytes作为字典键,但我肯定有人用。

最新更新