Maison >développement back-end >Tutoriel Python >Comment appeler correctement une fonction de classe depuis une autre fonction de classe ?

Comment appeler correctement une fonction de classe depuis une autre fonction de classe ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-17 00:31:24739parcourir

How to Correctly Call a Class Function from Within Another Class Function?

Appel de fonctions au sein d'une classe

Lorsque vous travaillez avec une programmation orientée objet, vous devrez peut-être appeler des fonctions au sein d'une classe. Un scénario courant consiste à définir deux fonctions au sein de la même classe et à appeler une fonction depuis une autre. Cet article vous guidera à travers le processus d'appel d'une fonction au sein d'une classe.

Dans cet exemple, nous avons une classe nommée Coordonnées avec deux fonctions : distToPoint et isNear. La fonction distToPoint calcule la distance entre deux coordonnées, tandis que la fonction isNear vérifie si un point est proche d'un autre point en fonction de la distance calculée.

Le code d'origine fourni :

class Coordinates:
    def distToPoint(self, p):
        """
        Use pythagoras to find distance
        (a^2 = b^2 + c^2)
        """
        ...

    def isNear(self, p):
        distToPoint(self, p)
        ...

Dans ce code, une erreur se produit lors de la tentative d’appel de la fonction distToPoint dans la fonction isNear. Pour appeler correctement une fonction au sein d'une classe, elle doit être appelée en tant que fonction membre sur l'instance (self). Le code suivant montre la version corrigée :

class Coordinates:
    def distToPoint(self, p):
        """
        Use pythagoras to find distance
        (a^2 = b^2 + c^2)
        """
        ...

    def isNear(self, p):
        self.distToPoint(p)
        ...

En utilisant self.distToPoint(p) dans la fonction isNear, la fonction distToPoint est correctement appelée en tant que fonction membre sur l'instance actuelle de la classe Coordonnées.

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