Can't Patch, Monkey?
Ruby とは対照的に、Python は Number クラスなどのコア型に対するメソッドのパッチを制限します。この機能不全は、Python の組み込みを含む C 拡張モジュールで定義されたデータの不変性に起因します。
根本的な理由は、同じプロセス内のインタプリタ間での C モジュールの共有にあります。モンキーパッチが許可されている場合、これらのモジュールへの変更がすべてのインタープリタに伝播し、意図しない結果が引き起こされます。
制限はメソッドを超えて C モジュールで定義されたすべてのデータにまで及び、たとえば属性の追加や変更が不可能になります。
対照的に、Python コードで作成されたクラスは特定のインタープリターに限定されているため、モンキーパッチを適用できます。この違いは、コア Python 型がユーザー コードからの変更に対して耐性があることを強調しています。
以上がPython のコア データ型にモンキー パッチを適用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。