Bonjour !
Si le problème a déjà été posé, je m'en excuse par avance. J'ai beau chercher, je ne trouve pas ou alors c'est que j'ai mal compris les solutions proposées.
Pour commencer, j'ai plusieurs fichiers XML à parser. Dans l'un de ses fichier j'ai une balise de ce type:
au niveau de mon programme, pour pouvoir le rendre modulable, j'ai une classe mère Action et des sous-classes qui dépendent du type d'action (exemple: action d'envoyer, etc..)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9<step> <actions> <action type="..." .../> <....../> </action> .... </actions> </step>
La classe Step possède donc, au vu du fichier XML, une liste d'actions qui n'ont pas forcément le même type.
je récupère la liste des actions et ensuite pour chaque action je suis obligé de vérifier l'attribut "type" pour pouvoir instancier la bonne sous classe:
Ma question est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for action in element.actions: if action.type == "send": self.l_actions.append(SendAction(action)) ....
est ce qu'il existe une manière beaucoup plus élégante de le faire ? Selon le type d'action, instancier avec la bonne sous-classe ? j'ai beau regarder certain pattern, les decorator... soit je ne comprends pas bien ces solutions, soit elles ne me sont pas adaptées. (La première remarque est sûrement la bonne puisque j'utilise python depuis 8 mois et que je ne connais pas encore toutes les subtilités de ce langage.
Merci !
Partager