begin process at 2012 05 24 22:43:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Python

 > 

Archives

 > 

Au secours !!!

 > 

Constructeur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Constructeur

lundi 24 octobre 2005 à 17:24:05 | Constructeur

Horfee

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 ?
mardi 25 octobre 2005 à 11:48:41 | Re : Constructeur

taz_iup

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?


mardi 25 octobre 2005 à 11:48:53 | Re : Constructeur

taz_iup

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?


mardi 25 octobre 2005 à 11:51:33 | Re : Constructeur

taz_iup

et merde il l'a mis en double et on peux pas virer ses posts... :'(
mardi 25 octobre 2005 à 13:55:46 | Re : Constructeur

Horfee

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

jeudi 27 octobre 2005 à 11:08:50 | Re : Constructeur

taz_iup

Réponse acceptée !
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")




Cette discussion est classée dans : constructeur


Répondre à ce message

Sujets en rapport avec ce message



Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales