J'ai lu qu'il est possible d'ajouter une méthode à un objet existant (par exemple, pas dans la définition de la classe) en python, je pense que cela s'appelle Monkey Patching (ou, dans certains cas, Canard coup de poing). Je comprends que ce n'est pas toujours une bonne décision de le faire. Mais, comment peut-on faire cela?
Et si vous ne savez pas python, pouvez la langue de votre choix faire? Si oui, comment?
MISE À JOUR 8/04/2008 00:21:01 HNE:
Qui ressemble à une bonne réponse de John Downey, j'ai essayé, mais il semble qu'il finit par n'être pas une véritable méthode. Votre exemple définit le nouveau patch de fonction avec un argument de soi, mais si vous écrivez le code de cette façon, le désormais patché méthode de classe demande un argument nommé soi (il n'est pas automatiquement reconnaître que l'identité de classe, qui est ce qui se passerait si elle est définie à l'intérieur de la définition de la classe), ce qui signifie que vous devez appeler la classe.patch(classe) au lieu de simplement la classe.patch() si vous voulez la même fonctionnalité qu'une véritable méthode. Il ressemble python n'est pas vraiment de la traiter comme une méthode, mais seulement comme une variable qui se trouve être une fonction (et en tant que tel est exigible). Est-il possible de joindre une méthode à une classe?
Oh, et Ryan, qui n'est pas exactement ce que je cherchais (il n'est pas intégré la fonctionnalité), mais c'est plutôt cool tout de même.