簡體   English   中英

為什么不能在 Python 中實習字節?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM