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

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

Linda Hamilton
Libérer: 2024-12-17 14:51:15
original
969 Les gens l'ont consulté

How Can I Add Methods to Existing Python Objects?

Ajout de méthodes aux instances d'objets existantes en Python

En Python, il est généralement déconseillé d'ajouter des méthodes aux objets existants (c'est-à-dire pas dans la définition de classe). Cependant, il existe quelques exceptions lorsque cela peut être nécessaire.

Méthodes liées et fonctions

En Python, les méthodes se distinguent des fonctions en étant liées à une instance d'objet . Lorsqu'une méthode est appelée, l'instance est automatiquement passée comme premier argument.

Les fonctions, en revanche, ne sont liées à aucune instance spécifique et doivent être explicitement invoquées avec les arguments appropriés.

Modification des attributs de classe

Si vous souhaitez ajouter une méthode à toutes les instances d'une classe, vous pouvez simplement modifier la classe définition :

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

a = A()
a.bar()  # Output: "bar"
Copier après la connexion

Modification d'instances individuelles

Cependant, si vous devez ajouter une méthode à une instance spécifique d'une classe, les choses deviennent légèrement plus compliquées. Vous ne pouvez pas attribuer directement une fonction à un attribut d'instance, car elle ne sera pas liée :

def barFighters():
    print("barFighters")

a.barFighters = barFighters
a.barFighters()  # TypeError: barFighters() takes exactly 1 argument
Copier après la connexion

Fonctions de liaison avec MethodType

Pour lier correctement une fonction à une instance d'objet, vous pouvez utiliser la fonction MethodType du module types :

import types

a.barFighters = types.MethodType(barFighters, a)
a.barFighters()  # Output: "barFighters"
Copier après la connexion

Cette liaison de méthode garantit que la fonction est invoquée avec l'instance comme le premier argument lorsqu'il est appelé.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal