[英]Why can't you intern bytes in Python?
如 Python 文檔中所述, sys.intern()
僅接受字符串對象。 我明白為什么sys.intern
不支持可變類型。 但是至少還有一種更不可變的類型對於實習來說是有意義的: bytes
。
所以這是我的問題:Python 實習不支持bytes
有什么特別的原因嗎?
這是十年前在 Python-Dev 郵件列表上提出的建議。 答案是:
主要區別在於 sys.intern() 將在每個外部引用消失時刪除 interned 字符串。 它需要 weakref'ability(str 和 bytes 都缺乏)或 object 析構函數的特殊合作(這就是為什么 sys.intern() 僅限於 str 而不是處理任意對象)。
顯然可以添加對bytes
的支持,但它似乎非常小眾,而不是標准 Python 可能添加的東西。 這不會阻止您制作自己的等價物,除非您想要它的全部原因是字典鍵查找速度。 我從未見過有人使用bytes
作為字典鍵,但我相信有些人會這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.