Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1112 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Une alternative au switch case, le dictionnaire!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Une alternative au switch case, le dictionnaire!!

n°1801983
Shadew
Posté le 19-10-2008 à 10:04:21  profilanswer
 

Kikoo,  
 
J'ai un code où j'ai plein de if/else dans tous les sens et j'ai eu l'idée d'utiliser un dictionnaire comme switch case:

Code :
  1. for elt in elt_rech: #pour chaque élémént à rechercher
  2.    try:
  3.       {'dflt': default(elt,i,s),'date':case_date(elt,i,s,dicoJour)}[elt.flag]
  4.    except KeyError:
  5.       print u"Le flag d'une expression régulière a mal été encodée!!\n"


Ainsi, lorsque le flag de elt est dflt, il passe dans la fonction dflt et lorsque le flag vaut date, il passe dans la fonction date (y a une dizaine de cas dans mon dico, mais je ne vous en ai mis que 2  :) )
Cependant, pour une obscure raison que j'ignore, il n'a malheureusement pas du tout l'effet escompté car au lieu de se rendre uniquement dans la fonction désirée, un élément visite toutes les fonction (ce qui a des résultats désastreux). Quelqu'un sait-il à quoi c'est dû?

mood
Publicité
Posté le 19-10-2008 à 10:04:21  profilanswer
 

n°1801992
KangOl
Profil : pointeur
Posté le 19-10-2008 à 11:19:17  profilanswer
 

bha c'est logique. Il les appelle lors de la construction du dictionnaire.
Faut utiliser des lambda...


---------------
Nos estans firs di nosse pitite patreye...
n°1802013
Shadew
Posté le 19-10-2008 à 12:18:10  profilanswer
 

KangOl a écrit :

bha c'est logique. Il les appelle lors de la construction du dictionnaire.
Faut utiliser des lambda...


 
J'ai trouvé un autre truc, il suffit de faire :

Code :
  1. {'dflt': default,'date':case_date,'dateComp':case_dateComp}[elt.flag](elt,i,s,dicoJour,elt_spe)


 
Ainsi il ne construit pas la fonction lors de la construction du dictionnaire :)
 
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Une alternative au switch case, le dictionnaire!!

 

Sujets relatifs
Exception + switch[javascript] switch avec des strings
créer un formulaire avec case a cochercommande ALT d'une image sur une case d'un tableau
moteur de recherche, case à cocherun Switch réparti sur plusieurs fichiers ?
case à cocher obligatoirement pour accéder aux site...[Spip]Manipuler le squelette alternative
Report Builder (decode ou case)Y a t-il une alternative au $ENV{'HTTP_REFERER'} ?
Plus de sujets relatifs à : Une alternative au switch case, le dictionnaire!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR