[Python] Association de classes
Fermé
bbakeroo
Messages postés
2197
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
10 juin 2007
-
16 janv. 2007 à 13:59
bbakeroo Messages postés 2197 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 10 juin 2007 - 23 janv. 2007 à 06:55
bbakeroo Messages postés 2197 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 10 juin 2007 - 23 janv. 2007 à 06:55
A voir également:
- [Python] Association de classes
- Dcb association - Forum Téléphones & tablettes Android
- Association avec le serveur freebox en cours ✓ - Forum Freebox
- Citizen code python - Guide
- Remportez 3 des jeux classés plato - Forum Jeux vidéo
- Sms dcb_association - Forum Téléphones & tablettes Android
4 réponses
bbakeroo
Messages postés
2197
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
10 juin 2007
71
16 janv. 2007 à 15:52
16 janv. 2007 à 15:52
Après reflexion disons que :
- Je ne peux avoir une instance de version sans une instance application (et une seule)
- Je dois avoir une instance application avec une ou plus instance de version
- Je ne peux avoir une instance de version sans une instance application (et une seule)
- Je dois avoir une instance application avec une ou plus instance de version
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
16 janv. 2007 à 17:18
16 janv. 2007 à 17:18
- Je ne peux avoir une instance de version sans une instance application (et une seule)
- Je dois avoir une instance application avec une ou plus instance de version
Tu peux utiliser la composition.
Un objet Application possède une collection (une liste en python) de App_Version.
Et après tu peux très bien passer la référence de l'objet Application en cours dans l'App_Version que tu viens d'instancier:
Il faut quand même voir que tes contraintes tournent en rond. Selon tes conditions, l'un ne peut pas être instancié sans l'autre.... Il faut bien que l'un soit invalide (qu'il existe sans l'autre) pendant ne serait-ce qu'un instant....
- Je dois avoir une instance application avec une ou plus instance de version
Tu peux utiliser la composition.
Un objet Application possède une collection (une liste en python) de App_Version.
Et après tu peux très bien passer la référence de l'objet Application en cours dans l'App_Version que tu viens d'instancier:
class Application: def__init__(self, Description, Importance, Marche, Offre_commerciale, Vocation, Date_cre, Dat_mod) self.Description = Description self.Importance = Importance self.Marche = Marche self.Offre_commerciale = Offre_commerciale self.Vocation = Vocation self.Date_cre = Date_cre self.Date_mod = Date_mod #Tes versions self.versions = [] # A toi de valider les paramètres ici def addVersion(self, Description, Date_version, Date_mep): version = App_version(self, Description, Date_version, Date_mep) self.versions.append(version) class App_version: def__init__(self, App, Description, Date_version, Date_mep) self.Description = Description self.Date_version = Date_version self.Date_mep = Date_mep #Vérifier le paramètre App... self.App = App
Il faut quand même voir que tes contraintes tournent en rond. Selon tes conditions, l'un ne peut pas être instancié sans l'autre.... Il faut bien que l'un soit invalide (qu'il existe sans l'autre) pendant ne serait-ce qu'un instant....
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
16 janv. 2007 à 17:36
16 janv. 2007 à 17:36
Bon en fait tu peux faire ça en surchargeant la méthode __new__ qui construit l'instance d'une classe. Mais il faudra décider d'une première version par défaut pour chaque application.
Puis dans le __init__ tu enlèves le self.versions = [] qui ne sert plus à rien sinon annuler ce qu'a fait __new__
class Application: def __new__(classe): instance = object.__new__(classe) instance.versions = [] default_version = App_version( instance, cquetuveux, cquetuveux, cquetuveux) instance.versions.append(default_version) return instance
Puis dans le __init__ tu enlèves le self.versions = [] qui ne sert plus à rien sinon annuler ce qu'a fait __new__
bbakeroo
Messages postés
2197
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
10 juin 2007
71
23 janv. 2007 à 06:55
23 janv. 2007 à 06:55
Merci kilian,
je creuse tout ca et te tiens au courant de la suite.
Je pense qu'effectivement :
self.versions = []
est plus approprié à mes attentes.
encore milles merci.
a+
je creuse tout ca et te tiens au courant de la suite.
Je pense qu'effectivement :
self.versions = []
est plus approprié à mes attentes.
encore milles merci.
a+