Je voudrais consulter un morceau de code avec vous. J'ai:Refactoring si des instructions en python
if tuple_type == Operation.START_SERVER:
dictionary = ServersDictionary()
dictionary.start(some_param)
elif tuple_type == Operation.STOP_SERVER:
dictionary = ServersDictionary()
dictionary.stop(some_param)
(...)
elif tuple_type == Operation.START_APP:
dictionary = AppsDictionary()
dictionary.start(some_param)
elif ...
(....)
Et là j'ai 27 if/elifs. Normalement, j'irais dans le répartiteur de carte - fonction, mais après chaque if/elif j'ai deux lignes de code avec le même dictionnaire référence. Me suggérez-vous une solution propre pour remplacer ces constructions laides? Créer 27 classes pour appliquer le polymorphisme ou 27 fonctions ne sonne pas bien ... qu'en pensez-vous?
Utilisez une table de hachage (un dictionnaire avec des méthodes comme valeurs) – muddyfish
Merci pour votre réponse. Mais alors je devrais créer 27 fonctions. Y a-t-il une meilleure solution? – Konrad
Vous pouvez utiliser lambdas avec des instructions séparées par ';' 's si vous avez vraiment besoin de – muddyfish