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 :
- for elt in elt_rech: #pour chaque élémént à rechercher
- try:
- {'dflt': default(elt,i,s),'date':case_date(elt,i,s,dicoJour)}[elt.flag]
- except KeyError:
- 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û?