Maison  >  Article  >  développement back-end  >  Expliquez ce que signifie le patch singe en Python ?

Expliquez ce que signifie le patch singe en Python ?

PHPz
PHPzavant
2023-08-19 11:53:16868parcourir

解释Python中的monkey patching是什么意思?

Le patching Monkey est la technique de modification dynamique d'un morceau de code au moment de l'exécution. En fait, en faisant du patch singe, nous modifions le comportement du code mais sans affecter le code source d'origine.

Histoire

Le mot Monkey patch est dérivé de guerrilla patch, guérilla signifie presque gorille et peut définir l'espèce de singe. L'application de correctifs de guérilla fait référence au fait d'apporter des modifications en secret. Mais Monkey Patch semble plus facile à prononcer, c'est pourquoi on l'appelle désormais "Monkey Patch". Dans le mot « Monkey-patch », singe définit le mot dynamique.

Patching Monkey en python

Le correctif Monkey en Python fait référence à la modification ou à la mise à jour d'un morceau de code ou d'une classe ou de n'importe quel module au moment de l'exécution. En termes simples, nous pouvons modifier le comportement ou le fonctionnement d'une classe/d'un module au moment de l'exécution sans changer tout le code Python. parfois, le patching singe est considéré comme une mauvaise pratique car la définition de l'objet ne décrit pas avec précision comment l'objet se comporte dans le code.

Exemple

class first:
   def print(self)
      print(“hello world”)

Sortie

Si nous exécutons le code ci-dessus, il générera le résultat suivant −

Hello world

Après le patch Code Monkey

Exemple

Import monkey
def monkey_function(self):
   print(“Hello world”)
# updating the print() with monkey_function()
monkey.A.print = monkey_function

# revoking method print() as method monkey_function()
obj = monkey.A()
obj print()

Sortie

Si nous exécutons le code ci-dessus, il générera le résultat suivant −

Hello world

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer