Passage d'objet en parametre d'un objet

Résolu
cs_oxkao Messages postés 7 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 5 mai 2010 - 5 juin 2009 à 10:49
cs_oxkao Messages postés 7 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 5 mai 2010 - 8 juin 2009 à 09:18
bonjours
encore une question de nul
je voudrais récupérer un objet en paramètre lors de la création d'un autre objet.
en gros faire un agrégation
j'ai tester plusieurs truc et rien n'a marché :S

1er test :
class Machine (object):
   
    def __init__(self,__numAfpa=0,__nomSymbolique=0,__dateAchat=0,__dateFinGarantie=0,r1,):
        self.__numAfpa = __numAfpa
        self.__nomSymbolique = __nomSymbolique
        self.__dateAchat = __dateAchat
        self.__dateFinGarantie =__dateFinGarantie
        self.r1=r1
dans un autre fichier

r2 = ram.Ram("toto","54","df",78,"dzd","4-4-1-12")
m1 = machine.Machine (1,2,3,4,r2)

résultat :/ : SyntaxError: non-default argument follows default argument

2eme test
class Machine (object):   
    def__init__(self,__numAfpa=0,__nomSymbolique=0,__dateAchat=0,__dateFinGarantie=0,__r1=Ram(),):

dans l'autre fichier toujours pareil :
r2 = ram.Ram("toto","54","df",78,"dzd","4-4-1-12")
m1 = machine.Machine (1,2,3,4,r2)

résultat :/ : TypeError: __init__() takes exactly 7 arguments (1 given)

3eme test
class Machine (object):
    def__init__(self,__numAfpa=0,__nomSymbolique=0,__dateAchat=0,__dateFinGarantie=0,__r1=Ram("toto","54","df",78,"dzd","4-4-1-12"),):

dans l'autre fichier
m1 = machine.Machine (1,2,3,4,r2= ram.Ram())

résultat :/ : TypeError: __init__() takes exactly 7 arguments (1 given)

les classes ram et machine fonctionne très bien enfin lorsque j'enlève le passage de l'objet ^^
je sais que c'est tout bidon mais google veut pas être mon ami et refuse toujours de m'aider :/
si une âme charitable passe par là

1 réponse

cs_oxkao Messages postés 7 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 5 mai 2010
8 juin 2009 à 09:18
bon j'ai trouve le souci.
il fallait faire :
m1 = machine.Machine (1,2,3,4,ram.Ram("toto","54","df",78,"dzd","4-4-1-12"))

et non

m1 = machine.Machine (1,2,3,4 ,r2=ram.Ram("toto","54","df",78,"dzd","4-4-1-12"))

en utilisant ma solution 1

merci de votre aide @+
3
Rejoignez-nous