Qu'est-ce que Monkey Patching ?
Le Monkey Patching est une technique de programmation qui consiste à modifier dynamiquement les attributs d'une classe ou d'un module au moment de l'exécution. Ce n'est pas la même chose que la surcharge ou la délégation de méthodes ou d'opérateurs.
Comment ça marche
En Python, les classes sont mutables et les méthodes sont des attributs de la classe. Le patching Monkey implique le remplacement dynamique de ces attributs par des versions modifiées, vous permettant de modifier le comportement de la classe ou du module.
Exemple
Considérons une classe avec une méthode get_data qui récupère les données d'une source externe. Dans un test unitaire, vous souhaiterez peut-être remplacer la méthode get_data par un stub qui renvoie des données fixes sans dépendre de la source externe.
import unittest class MyTest(unittest.TestCase): def test_data(self): # Monkey patch the original get_data method original_data = my_module.get_data_orig my_module.get_data = my_module.get_data_stub # Now, calling get_data will use the test stub my_data = my_module.get_data() # Restore the original get_data method my_module.get_data = original_data
Précautions
Pendant que Le patch singe peut être utile pour les tests et le débogage, il est important de l'utiliser avec prudence :
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!