Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
cho7
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du code.
Mais pourquoi ne pas ecrire self.type="Jingle" alors ? Ou alors créer 3 classes Jingle, Clip, et Reportage, heritant toutes les 3 de la meme classe, par exemple Media, et chacune dans sa methode __init__ modifie self.type avec ce qui va bien ?
tu peux faire des methodes qui attendent un Media en parametre, et toi de l'autre coté tu lui passe soit des Jingle(), soit des Clip(), etc.
C'est un peu plus objet à mon sens, ca permettra peut etre mieux de coller aux evolutions futures de ton programme.
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du
code.
Mais pourquoi ne pas ecrire self.type="Jingle" alors ?
Ou alors créer 3 classes Jingle, Clip, et Reportage, heritant toutes les
3 de la meme classe, par exemple Media, et chacune dans sa methode
__init__ modifie self.type avec ce qui va bien ?
tu peux faire des methodes qui attendent un Media en parametre, et toi
de l'autre coté tu lui passe soit des Jingle(), soit des Clip(), etc.
C'est un peu plus objet à mon sens, ca permettra peut etre mieux de
coller aux evolutions futures de ton programme.
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du code.
Mais pourquoi ne pas ecrire self.type="Jingle" alors ? Ou alors créer 3 classes Jingle, Clip, et Reportage, heritant toutes les 3 de la meme classe, par exemple Media, et chacune dans sa methode __init__ modifie self.type avec ce qui va bien ?
tu peux faire des methodes qui attendent un Media en parametre, et toi de l'autre coté tu lui passe soit des Jingle(), soit des Clip(), etc.
C'est un peu plus objet à mon sens, ca permettra peut etre mieux de coller aux evolutions futures de ton programme.
Laurent Pointal
Bonjour,
J'ai, dans un programme, à alterner d'une certaine manière des "Jingles", des "Clips" et des "Reportages".
Je dois donc composer une playlist contenant des Titres. En raisonnant en "Objet", je crée donc une classe Titre
[...] class Titre(): def __init__(self): self.type= ???? self.duration=1 self.time_begin=0 [...]
Ca m'arrangerai de pouvoir faire quelquechose dans le genre:
[...] t1=Titre() t1.type=Jingle [...]
Il n'y aurait qu'un nombre fini de valeurs possibles:
- Jingle - Clip - Reportage
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du code.
Ce lien pourrais éventuellement t'intéresser: http://cheeseshop.python.org/pypi/enum/ http://groups.google.fr/group/comp.lang.python.announce/browse_thread/thread/6b96ecd506096557/4ef7b8c295ffa97d?lnk=st&q=python+enumeration+type+group%3Acomp.lang.python.announce&rnum=1&hl=fr#4ef7b8c295ffa97d
A+
Laurent.
Bonjour,
J'ai, dans un programme, à alterner d'une certaine manière des "Jingles",
des "Clips" et des "Reportages".
Je dois donc composer une playlist contenant des Titres.
En raisonnant en "Objet", je crée donc une classe Titre
[...]
class Titre():
def __init__(self):
self.type= ????
self.duration=1
self.time_begin=0
[...]
Ca m'arrangerai de pouvoir faire quelquechose dans le genre:
[...]
t1=Titre()
t1.type=Jingle
[...]
Il n'y aurait qu'un nombre fini de valeurs possibles:
- Jingle
- Clip
- Reportage
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du
code.
Ce lien pourrais éventuellement t'intéresser:
http://cheeseshop.python.org/pypi/enum/
http://groups.google.fr/group/comp.lang.python.announce/browse_thread/thread/6b96ecd506096557/4ef7b8c295ffa97d?lnk=st&q=python+enumeration+type+group%3Acomp.lang.python.announce&rnum=1&hl=fr#4ef7b8c295ffa97d
J'ai, dans un programme, à alterner d'une certaine manière des "Jingles", des "Clips" et des "Reportages".
Je dois donc composer une playlist contenant des Titres. En raisonnant en "Objet", je crée donc une classe Titre
[...] class Titre(): def __init__(self): self.type= ???? self.duration=1 self.time_begin=0 [...]
Ca m'arrangerai de pouvoir faire quelquechose dans le genre:
[...] t1=Titre() t1.type=Jingle [...]
Il n'y aurait qu'un nombre fini de valeurs possibles:
- Jingle - Clip - Reportage
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du code.
Ce lien pourrais éventuellement t'intéresser: http://cheeseshop.python.org/pypi/enum/ http://groups.google.fr/group/comp.lang.python.announce/browse_thread/thread/6b96ecd506096557/4ef7b8c295ffa97d?lnk=st&q=python+enumeration+type+group%3Acomp.lang.python.announce&rnum=1&hl=fr#4ef7b8c295ffa97d
A+
Laurent.
bruno at modulix
R12y wrote:
Bonjour,
J'ai, dans un programme, à alterner d'une certaine manière des "Jingles", des "Clips" et des "Reportages".
Je dois donc composer une playlist contenant des Titres. En raisonnant en "Objet", je crée donc une classe Titre
[...] class Titre(): def __init__(self): self.type= ???? self.duration=1 self.time_begin=0 [...]
Ca m'arrangerai de pouvoir faire quelquechose dans le genre:
[...] t1=Titre() t1.type=Jingle [...]
Il n'y aurait qu'un nombre fini de valeurs possibles:
- Jingle - Clip - Reportage
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du code.
Bon bin tu a déjà eu deux réponses possibles: sous-classes et énums. Si le 'type' sert à autre chose qu'à l'affichage (ie: comportement différent etc), et qu'il y en a effectivement un nombre déterminé et pas trop important, utilise plutôt la première solution. Si c'est uniquement pour l'affichage (et éventuellement des filtres), et qu'il risque d'apparaître un nombre indéterminé de nouveaux types, utilise plutôt la seconde.
Note aussi qu'il y a une solution 'mixte': la composition (avec ou sans délégation):
class TypeTitre(object): def __init__(self): if self.__class__ is TypeTitre: raise NotImplementedError, "TypeTitre is an abstract base class" def __str__(self): return self.__class__.__name__
type = property(fget=lambda self: return self._type)
# si les types déterminent des comportements, ajouter # une délégation... def __getattr__(self, name): return getattr(self._type, name)
t1 = Titre(Jingle) t2 = Titre(Clip)
etc...
Mes deux centimes...
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
R12y wrote:
Bonjour,
J'ai, dans un programme, à alterner d'une certaine manière des "Jingles",
des "Clips" et des "Reportages".
Je dois donc composer une playlist contenant des Titres.
En raisonnant en "Objet", je crée donc une classe Titre
[...]
class Titre():
def __init__(self):
self.type= ????
self.duration=1
self.time_begin=0
[...]
Ca m'arrangerai de pouvoir faire quelquechose dans le genre:
[...]
t1=Titre()
t1.type=Jingle
[...]
Il n'y aurait qu'un nombre fini de valeurs possibles:
- Jingle
- Clip
- Reportage
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du
code.
Bon bin tu a déjà eu deux réponses possibles: sous-classes et énums. Si
le 'type' sert à autre chose qu'à l'affichage (ie: comportement
différent etc), et qu'il y en a effectivement un nombre déterminé et pas
trop important, utilise plutôt la première solution. Si c'est uniquement
pour l'affichage (et éventuellement des filtres), et qu'il risque
d'apparaître un nombre indéterminé de nouveaux types, utilise plutôt la
seconde.
Note aussi qu'il y a une solution 'mixte': la composition (avec ou sans
délégation):
class TypeTitre(object):
def __init__(self):
if self.__class__ is TypeTitre:
raise NotImplementedError, "TypeTitre is an abstract base class"
def __str__(self):
return self.__class__.__name__
J'ai, dans un programme, à alterner d'une certaine manière des "Jingles", des "Clips" et des "Reportages".
Je dois donc composer une playlist contenant des Titres. En raisonnant en "Objet", je crée donc une classe Titre
[...] class Titre(): def __init__(self): self.type= ???? self.duration=1 self.time_begin=0 [...]
Ca m'arrangerai de pouvoir faire quelquechose dans le genre:
[...] t1=Titre() t1.type=Jingle [...]
Il n'y aurait qu'un nombre fini de valeurs possibles:
- Jingle - Clip - Reportage
J'aurais pu faire avec des entiers mais ça améliorerait la lisibilité du code.
Bon bin tu a déjà eu deux réponses possibles: sous-classes et énums. Si le 'type' sert à autre chose qu'à l'affichage (ie: comportement différent etc), et qu'il y en a effectivement un nombre déterminé et pas trop important, utilise plutôt la première solution. Si c'est uniquement pour l'affichage (et éventuellement des filtres), et qu'il risque d'apparaître un nombre indéterminé de nouveaux types, utilise plutôt la seconde.
Note aussi qu'il y a une solution 'mixte': la composition (avec ou sans délégation):
class TypeTitre(object): def __init__(self): if self.__class__ is TypeTitre: raise NotImplementedError, "TypeTitre is an abstract base class" def __str__(self): return self.__class__.__name__