你能修改 Python 中的核心型別嗎?
Python 愛好者可能熟悉 Ruby 擴充 Number 類別和其他類別的有趣功能。基本類型。此功能允許添加多種方法,開啟了迷人的可能性。然而,一個迫切的問題出現了:Python 可以複製這種行為嗎?
不可變的基礎
令 Python 愛好者沮喪的是,猴子修補核心類型仍然是一個未實現的夢想。與 Ruby 不同,Python 的基本資料結構駐留在 C 擴充模組中,具有堅定的不變性。這種無敵源於這樣一個事實:這些 C 模組在支援單一進程中的多個解釋器方面發揮著至關重要的作用。允許變更會造成嚴重破壞,可能會損害共用相同模組的不相關解釋器的完整性。
本地化猴子修補
雖然核心類型仍然不可觸及,但 Python 提供了一線希望Python 程式碼庫中定義的類別的希望。與不可變的對應類別不同,這些本地類別可以隨著猴子補丁的節奏起舞。這種區別源於它們被限制在本地解釋器中,確保它們的修改保持隔離。
分割的原因
核心型別和 Python 定義的類別之間的差異源自於它們不同的性質。核心類型包含在 C 模組中,由多個解釋器共用。無節制的猴子修補有可能為這個共享領域帶來混亂。另一方面,Python 定義的類別在各自的解釋器中相對隔離,允許在不破壞集體的情況下進行惡作劇的更改。
以上是你能在 Python 中猴子修補核心型嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!