bonjour, merci de ma lire et encors merci si vous me lisez jusqu'au bout
voila, ma question est d'ordre quasi-philosophique.
je doit générer un fichier texte avec des champ a largeur fixe :
ex :
soit comme règles :60 23112010FF40000000 X00014484
élément 1: offset=1 taille=3 (60 )
élément 2: offset=4 taille=8 (23112010)
élément 3: offset=12 taille=2 (FF)
etc...
j'ai donc créé des classe pour chaque Champ avec les info d'offset et de taille.
j'ai aussi crée une classe Enregistrement qui doit contenir ces champ...
mon dilemme viens de comment enregistrer la structure de ma ligne dans mon objet Enregistrement.
j'aurais bien créer une variable de classe contenant la liste des champ :
et ensuite copier cette structure a chaque instanciation d'un enregistrement, mais je ne vois pas comment faire pour qu'il n'y ai pas l'instanciation au moment de la création des la structure(comme c'est le cas actuellement) mais seulement a la création de l'instance Enregistrement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 structure = [ ChampText(nom="JOURNAL" , taille=3 , offset=1 , obligatoire=True) , ChampDate(nom="DATECOMPTABLE" , taille=8 , offset=4 , obligatoire=True) , ChampValue(nom="TYPE PIECE" , taille=2 , offset=12 , obligatoire=True , valides=\ [ "FC", "AC", "RC", "FF", "AF", "RF", "OD", "OC", "OF" ]) ]
j'ai déjà entrevue plusieurs solutions :
- déplacer le code de la structure dans __init__
- poser les arguments dans un dico au lieu de créer mon objet directement dans la structure
- cloner la structure de mon attribut de classe a chaque __init__
en gros, je pourrait le faire, mais quel est la solution la plus pythonic ?
edit:
j'ai temporairement opté pour une méthode de classe qui retourne une nouvelle liste de champ.
Partager