Maison >développement back-end >Tutoriel Python >Comment puis-je ajouter de nouvelles méthodes aux objets Python existants ?

Comment puis-je ajouter de nouvelles méthodes aux objets Python existants ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-26 07:05:10790parcourir

How Can I Add New Methods to Existing Python Objects?

Attacher des méthodes supplémentaires aux objets Python existants

En Python, il n'est généralement pas conseillé de modifier les méthodes des objets existants, mais dans certaines situations , cela peut être nécessaire. Cet article explique comment ajouter des méthodes aux instances après leur création, en mettant en évidence la distinction entre les fonctions et les méthodes liées.

Comprendre la fonction par rapport à la méthode liée

En Python , les fonctions ne sont pas liées, tandis que les méthodes liées sont associées à une instance spécifique. Lorsqu'une méthode liée est appelée, l'instance est automatiquement passée comme premier argument. Cette liaison se produit lorsque la méthode est définie dans la définition de la classe.

Mise à jour des méthodes au niveau de la classe

La modification des méthodes définies au niveau de la classe est simple. Vous pouvez simplement attribuer une nouvelle fonction à l'attribut méthode de la classe :

class A:
    def bar(self):
        print("bar")

A.fooFighters = fooFighters

Cette modification s'applique à toutes les instances de la classe, y compris celles existantes.

Ajout d'une instance- Méthodes spécifiques

L'attachement de méthodes à des instances individuelles est plus complexe. L'attribution d'une fonction directement à un attribut d'une instance ne crée pas de méthode liée, ce qui entraîne une erreur lorsqu'elle est appelée avec zéro argument.

Pour créer une méthode liée pour une seule instance, nous pouvons utiliser la fonction MethodType de le module types :

import types

a.barFighters = types.MethodType(barFighters, a)

Maintenant, lorsque a.barFighters() est appelé, la méthode est liée à l'instance a, et elle peut être invoquée sans aucun ajout supplémentaire arguments.

Préserver l'isolement de l'instance

Il est important de noter que la modification des méthodes spécifiques à une instance n'affectera pas les autres instances de la même classe. Chaque instance conserve son propre ensemble d'attributs, y compris des méthodes.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn