Constructeur [Résolu]

Signaler
Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009
-
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
-
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 ?
A voir également:

5 réponses

Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
2
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")
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
2
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?
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
2
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?
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
2
et merde il l'a mis en double et on peux pas virer ses posts... :'(
Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009

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...