Constructeur [Résolu]

Horfee 192 Messages postés mercredi 9 avril 2003Date d'inscription 10 août 2009 Dernière intervention - 24 oct. 2005 à 17:24 - Dernière réponse : taz_iup 179 Messages postés mercredi 13 octobre 2004Date d'inscription 21 mai 2014 Dernière intervention
- 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 ?
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
taz_iup 179 Messages postés mercredi 13 octobre 2004Date d'inscription 21 mai 2014 Dernière intervention - 27 oct. 2005 à 11:08
3
Merci
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")

Merci taz_iup 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de taz_iup
taz_iup 179 Messages postés mercredi 13 octobre 2004Date d'inscription 21 mai 2014 Dernière intervention - 25 oct. 2005 à 11:48
0
Merci
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?
Commenter la réponse de taz_iup
taz_iup 179 Messages postés mercredi 13 octobre 2004Date d'inscription 21 mai 2014 Dernière intervention - 25 oct. 2005 à 11:48
0
Merci
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?
Commenter la réponse de taz_iup
taz_iup 179 Messages postés mercredi 13 octobre 2004Date d'inscription 21 mai 2014 Dernière intervention - 25 oct. 2005 à 11:51
0
Merci
et merde il l'a mis en double et on peux pas virer ses posts... :'(
Commenter la réponse de taz_iup
Horfee 192 Messages postés mercredi 9 avril 2003Date d'inscription 10 août 2009 Dernière intervention - 25 oct. 2005 à 13:55
0
Merci
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...
Commenter la réponse de Horfee

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.