Méthode avec nombre d'arguments variable.
Bonjour et merci de votre aide...
Ma question est vraisemblablement triviale, mais je suis novice et autodidacte en POO et je n'arrive pas à m'en sortir seul...
Pour (essayer d') être tout à fait clair, je vous expose mon problème :
Dans le plan cartésien , je veux faire des calculs sur des points M(x,y)...
1) J'ai créé une classe pour définir mes objets de base, cad mes points 2D :
Code:
1 2 3 4
| class Point2D(object) :
def __init__(self,x,y)
self.x=x
self.y=y |
2) J'ai créé une méthode qui calcule la distance euclidienne entre deux points :
Code:
1 2 3 4
| def distance(self, other)
delta_x=self.x-other.x
delta_y=self.y-other.y
return (delta_x**2+delta_y**2)**0.5 |
J'étais déjà très fier d'arriver à ce résultat (mine de rien le coup du "other" n'est quand même pas complètement évident...)...
Le pb sur lequel je butte est le suivant :
Je voudrais écrire une méthode qui calcule la surface d'un polygone défini par 3 instances OU PLUS de la classe Point2D...
Plusieurs formules classiques sont disponibles...par exemple somme des (xi-1-xi+1)*yi/2 en valeur absolue...
Mon problème est que le nombre de points à prendre en compte n'est pas connu à priori...
Comment dois-je écrire ma fonction ?
def surface(self, *args) ?
ou alors
def surface (*args) ?
Comment ensuite écrire le cœur de ma fonction pour récupérer les coordonnées des points passés en référence et calculer la surface du polygone ?
Encore merci pour votre aide...