Kann nicht patchen, Monkey?
Im Gegensatz zu Ruby beschränkt Python das Methoden-Patching auf Kerntypen wie die Number-Klasse. Diese Unfähigkeit ist auf die Unveränderlichkeit der in C-Erweiterungsmodulen definierten Daten zurückzuführen, die Pythons integrierte Funktionen umfassen.
Der zugrunde liegende Grund liegt in der gemeinsamen Nutzung von C-Modulen zwischen Interpreten innerhalb desselben Prozesses. Wenn Monkeypatching erlaubt wäre, würden sich Änderungen an diesen Modulen auf alle Interpreter übertragen und unbeabsichtigte Folgen haben.
Die Einschränkung erstreckt sich über Methoden hinaus auf alle in C-Modulen definierten Daten und macht es beispielsweise unmöglich, Attribute hinzuzufügen oder zu ändern.
Im Gegensatz dazu können in Python-Code erstellte Klassen mit Monkeypatches versehen werden, da sie auf den spezifischen Interpreter beschränkt sind. Diese Unterscheidung unterstreicht die Immunität der Python-Kerntypen gegenüber Änderungen, die vom Benutzercode ausgehen.
Das obige ist der detaillierte Inhalt vonWarum kann ich die Kerndatentypen von Python nicht patchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!