Constructeur

Résolu
Horfee Messages postés 188 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 août 2009 - 24 oct. 2005 à 17:24
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 - 27 oct. 2005 à 11:08
bonjour, je debute en python. Je viens du monde C/C++ (plutot C++) et
je cherche a savoir s'il est possible de surcharger le constructeur
__init__.

A premiere vue oui vu que le parser ne me detecte aucune erreur.
Seulement a l'execution, j'ai des problemes : il m'appelle toujours la
derniere fonction declarée... Comment qu'on fait svp ?

5 réponses

taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
27 oct. 2005 à 11:08
On ne peux pas faire ce genre de chose en python (ou alors je en sais
pas faire). par contre tu peux mettre des valeurs par defaut.

class A:

def __init__(self, param1=None,param2=None):

pass



ce qui te permet de l'appeler avec 1 2 ou 3 paramètres. Il ne te reste
qu'a tester la valeur pour savoir combien d'argument tu as passé. Le
petit plus de python est que tu peux également changer la valeur par
defaut d'un seul des arguments( Je ne crois pas que cela etais possible
en C/C++. ex:



x = A()

ou

x = A(param2="truc")

ou

x=A("chose")

ou

x=A("chose","truc")
3
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
25 oct. 2005 à 11:48
il suffit d'appeler le constructeur de la classe parent ex la classe B herite de la classe A







class B(A):

def __init( Self ):

A.__init__(Self)



ainsi les construteurs des classes parents sont également appelé.

Le plus de python est que tu peux peux héritr de plusieurs classes. ex :



class Multi(A,B,C):

def __init__(Self):

A.__init__(Self)


B.__init__(Self)


C.__init__(Self)



voila voila... :D alors c'est-il pas génial python?
0
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
25 oct. 2005 à 11:48
il suffit d'appeler le constructeur de la classe parent ex la classe B herite de la classe A







class B(A):

def __init( Self ):

A.__init__(Self)



ainsi les construteurs des classes parents sont également appelé.

Le plus de python est que tu peux peux héritr de plusieurs classes. ex :



class Multi(A,B,C):

def __init__(Self):

A.__init__(Self)


B.__init__(Self)


C.__init__(Self)



voila voila... :D alors c'est-il pas génial python?
0
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
25 oct. 2005 à 11:51
et merde il l'a mis en double et on peux pas virer ses posts... :'(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Horfee Messages postés 188 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 août 2009
25 oct. 2005 à 13:55
non je ne parlais pas d'heritage, que ce soit simple ou multiple. Ce
que j'aimerais avoir c une seule classe A avec plusieurs constructeur :



class Objet :

def __init__(self):

pass

def __init__(self, param1):

pass

def __init__(self, param1,param2):

pass

un truc dans ce style.

A chaque seul la troisieme def (avec 3 param) est prise en compte...
0