Très bien, donc mon titre a été aspiré. Un exemple fonctionne mieux:Equivalent "Pythonic" pour la gestion des commutateurs et des comparaisons de chaînes multiples
input = 'check yahoo.com'
Je veux analyser l'entrée, en utilisant le premier mot comme la « commande », et le reste de la chaîne en tant que paramètre. Voici la version simple de la façon dont mon esprit non-Pythonic est le coder:
if len(input) > 0:
a = input.split(' ')
if a[0] == 'check':
if len(a) > 1:
do_check(a[1])
elif a[0] == 'search':
if len(a) > 1:
do_search(a[1])
J'aime Python parce qu'il rend les choses normalement compliquées en des choses assez simples. Je ne suis pas trop expérimenté avec ça, et je suis à peu près sûr qu'il y a une bien meilleure façon de faire ces choses ... d'une façon un peu plus pythonique. J'ai vu quelques exemples de personnes remplaçant des instructions switch avec des fonctions dicts et lambda, alors que d'autres personnes ont simplement recommandé if..else nests.
Une question python-switch précédent: http://stackoverflow.com/questions/60208/replacements-for-switch-statement-in-python – monkut
Par souci d'intérêt, vous voudrez peut-être consulter une ancienne proposition d'amélioration Python (PEP) qui a été rejetée a été mis en place pour inclure une déclaration de commutateur en Python: http://www.python.org/dev/peps/pep-3103/ –