Si j'utilise un module/classe sur lequel je n'ai aucun contrôle, comment pourrais-je décorer l'une des méthodes?Comment ajouter un décorateur à une méthode d'objet existante?
Je comprends que je peux: my_decorate_method(target_method)()
mais je cherche à ce que cela se produise où target_method
est appelé sans avoir à faire une recherche/remplacement.
Est-ce encore possible?
C'était la manière originale que j'ai regardé le problème mais c'était beaucoup de travail. La méthode de la réponse acceptée est utile à connaître - même si ce n'est pas la façon la plus correcte de faire les choses. –
Ce n'est pas une question de "plus correct" autant que de "lisible" et "maintenable". Votre cas d'utilisation est la raison * exacte * que les langues OO ont hérité. Cela peut sembler beaucoup de travail, mais c'est ce que tous les autres programmeurs attendent de voir. À long terme, les décorateurs dynamiques amusants sont une responsabilité. L'ancien héritage ne deviendra pas une responsabilité. –