Python 3.17 中待移除的項目¶
- 
- collections.abc.ByteString預計在 Python 3.17 中移除。- 使用 - isinstance(obj, collections.abc.Buffer)來測試- obj是否在 runtime 實作了緩衝區協定。在型別註解的使用中,請用- Buffer或明確指定你的程式碼所支援型別的聯集(例如- bytes | bytearray | memoryview)。- ByteString最初被設計為一個抽象類別,以作為- bytes和- bytearray的超型別 (supertype)。然而由於 ABC 從未擁有任何方法,知道一個物件是- ByteString的實例從未真正告訴你任何關於該物件的有用資訊。其他常見的緩衝區型別如- memoryview也從未被理解為- ByteString的子型別(無論是在 runtime 還是由靜態型別檢查器)。
 
- 
- 在 Python 3.14 之前,舊式聯集是使用私有類別 - typing._UnionGenericAlias實作的。這個類別不再被需要,但為了向後相容性而保留,並計劃將在 Python 3.17 中移除。使用者應該改用文件中記錄的內省輔助函式,例如- typing.get_origin()和- typing.get_args(),或者依賴私有實作細節。
- typing.ByteString自 Python 3.9 起已被棄用,預計在 Python 3.17 中移除。- 使用 - isinstance(obj, collections.abc.Buffer)來測試- obj是否在 runtime 實作了緩衝區協定。在型別註解的使用中,請用- Buffer或明確指定你的程式碼所支援型別的聯集(例如- bytes | bytearray | memoryview)。- ByteString最初被設計為一個抽象類別,以作為- bytes和- bytearray的超型別 (supertype)。然而由於 ABC 從未擁有任何方法,知道一個物件是- ByteString的實例從未真正告訴你任何關於該物件的有用資訊。其他常見的緩衝區型別如- memoryview也從未被理解為- ByteString的子型別(無論是在 runtime 還是由靜態型別檢查器)。