Maison >développement back-end >Tutoriel Python >Comment appeler une fonction de classe à partir d'une autre au sein de la même classe en Python ?
Appel de fonctions au sein des classes : une approche pratique
Dans la programmation orientée objet, les classes encapsulent les données et les fonctionnalités, les organisant en entités logiques. Lorsque vous devez effectuer des opérations sur ces objets, vous pouvez définir des fonctions membres au sein de la classe. Cependant, il n'est pas toujours clair comment appeler une fonction depuis une autre lorsque les deux sont définies dans la même classe.
Le problème :
Considérez le code suivant qui calcule distances entre coordonnées :
class Coordinates: def distToPoint(self, p): # Calculate distance using Pythagoras' theorem def isNear(self, p): # How do we call distToPoint from isNear?
Dans cet exemple, nous voulons déterminer si un point est proche d'un autre point à l'aide de la fonction distToPoint. Comment invoquer cette fonction dans la fonction isNear ?
La solution :
Pour appeler une fonction membre au sein de la même classe, nous devons utiliser l'instance de classe (appelée self par convention) pour accéder à ses méthodes. La fonction isNear corrigée ressemblerait à ceci :
class Coordinates: def distToPoint(self, p): # Calculate distance using Pythagoras' theorem def isNear(self, p): self.distToPoint(p) # Continue with other operations
En ajoutant self avant distToPoint, nous indiquons explicitement que nous voulons appeler la fonction membre distToPoint sur l'instance self de la classe Coordonnées.
Exemple d'utilisation :
Pour utiliser ce code, vous devez créer une instance des coordonnées classe, puis appelez la fonction isNear sur cette instance :
coordinates = Coordinates() coordinates.isNear(another_point)
Cela calculera la distance entre les coordonnées de l'instance et le another_point spécifié à l'aide de la fonction distToPoint.
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!