Bjr,
Le titre n'est pas très explicite, désolé mais je ne suis jamais bien inspiré pour trouver des titres claires ...
J'aimerais savoir ce qui est plus rapide,
Soit une suite de if, elif, else, ou un appel à de fonctions ?
Ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if 'TREE@TRUC' in sortie: commande elif 'TEXT@MACHIN' in sortie: commande elif ..... .... ....
Dans le même genre, j'ai une suite de if in or
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 def TREE(arg): commande def TEXT(arg): commande fonction, arg = sortie.split('@') eval( "%s('%s')" % (fonction, arg) )
Pour remplacer les if in or, j'ai utilisé une liste compréhension, mais c'est plus long que les if or. (normal, il matche chaque pattern pour le mettre dans la liste, avec les or, dès qu'il trouve, il arrête)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if ( 'pattern1' in ligne or 'pattern2' in ligne or 'pattern3' in ligne): commande obligatoire if 'pattern1' in ligne: commande elif 'pattern2' in ligne: commande
Je ne vois pas non plus comment me passer des if elif qui suivent, à moins de passer par une ER pour traiter la ligne et en récupérer ce qu'il faut pour lancer une fonction via eval, mais je pense que ca sera plus gourmand que des elif (enfin j'en sais rien, c'est bien pour ça que je pose cette question
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 defaut=[ 'pattern1', 'pattern2', 'pattern3'] liste=[ i for i in defaut if i in ligne ] if liste: commande obligatoire if 'pattern1' in ligne: commande elif 'pattern2' in ligne: commande)
Avec ma maigre expérience, j'ai remarqué qu'il été souvent plus rapide d'utiliser de if elif que des trucs plus complexes, certe le code est moins jolie, mais bon, c'est pas le but la beauté
Merci d'avance à ceux qui vont éclairer ma lanterne.
Partager