Ajout d'une méthode à une instance d'objet existante : un guide pour Python
Bien que généralement déconseillé, l'ajout d'une méthode à une instance d'objet peut être nécessaire dans certaines circonstances. En Python, la distinction entre les fonctions et les méthodes liées est cruciale pour ce processus.
Les méthodes liées sont liées à une instance spécifique, qui est automatiquement fournie comme premier argument lors de l'appel. À l'inverse, les appelables au niveau de la classe restent indépendants, ce qui permet des modifications dynamiques de la définition de classe.
Pour attacher une méthode à l'ensemble de la classe, mettez simplement à jour sa définition :
def fooFighters(self): print "fooFighters" A.fooFighters = fooFighters
Cette méthode devient disponible pour tous instances, y compris celles définies précédemment.
Attacher une méthode à une instance individuelle présente un défi. L'attribuer directement à l'instance ne la lie pas, ce qui entraîne une erreur lors de l'appel.
Pour résoudre ce problème, utilisez la fonction MethodType du module types :
import types a.barFighters = types.MethodType(barFighters, a)
Les méthodes liées n'affectent que l'instance spécifique à laquelle ils sont attachés, laissant les autres instances de classe intactes. Pour plus d'informations, explorez des sujets tels que les descripteurs et la programmation des métaclasses.
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!