Surcharge(Overloading) en Python


Une signature d'une fonction est le nom et les arguments avec leur type (mais pas le type de la valeur retournée).

Pour Python, puisque le typage est dynamique, une signature d'une fonction est le nom de la fonction et le nombre d'arguments.

Deux méthodes ont la même signature est interdit.

Le surcharge(Overloading)  est de définir plusieurs méthodes de signatures différentes pour un même nom. C'est-à-dire définir, dans la même classe, plusieurs fonctions de même nom mais de différent nombre d'arguments.

En python pas de surcharge,   C'est-à-dire on ne peut pas définir, dans la même classe, plusieurs fonctions de même nom mais de différent nombre d'arguments. Si vous avez les défini, seules la dernière fonction définie sera prise en compte.

La solution donc est d'utiliser les paramètres avec valeur par défaut.

Petit exercice:

Définir une classe Point avec un constructeur, un point est définit soit par deux coordonnées x et y, s'il s'agit d'une représentation d'un point au plan ou par trois coordonnées x, y et z, s'il s'agit d'une représentation d'un point en espace.

La classe Point doit contenir une méthode ToString qui affiche le point.

Exemple d'exécution:

>>>P1=Point(2,3)
>>>P1.ToString()
P(2.00 , 3.00)
>>>P2=Point(1,-5,6)
>>>P2.ToString()
P(1.00 , -5.00 , 6.00)




[python] ... [/python] pour insérer un code Python.
[latex] ... [/latex] pour insérer au format latex.

Exemple:

[python]
print('Hello word')
[/python]

[latex]\sqrt{x}[/latex]


Poster un commentaire



Programmes proches

Polymorphisme: Classe mère Courrier
Surcharge(Overloading) en Python
Héritage simple: Personne, employé et chef
Polymorphisme et héritage: La classe Rectangle et carré