Bonjour!
Je souhaiterais faire passer des dictionnaires d'une méthode à une autre dans une même classe. Je n'arrive pas à transférer mes dictionnaires corretement, ou du moins pas complétement. J'utilise une methode __init__ pour lire un fichier externe (appelé decay.dat). A partir de decay.dat, j'obtiens N dictionnaires.
Le dictionnaire à ligne 10 ressemble à cela:
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 import os import sys import re class DecayParser(): def __init__(self, inputFiles): ... #je parse les éléments à partir de mon fichier externe vers des listes, et je transforme ces listes en dictionnaires print self.isotopeDecay def modifyValues(self): print self.isotopeDecay decay_parser = DecayParser('decay.dat') decay_parser.modifyValues()
Code : Sélectionner tout - Visualiser dans une fenêtre à part print self.isotopeDecay
la ligne 13 :{'Er168': ['0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
{'Yb168': ['0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
{'Tm169': ['0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
{'Er170': ['0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
{'Yb170': ['0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
{'Tm171': ['1.144E-08', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
{'Yb171': ['0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
{'Yb172': ['0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
Code : Sélectionner tout - Visualiser dans une fenêtre à part print self.isotopeDecay
Voila mon premier problème, je n'obtiens que le dernier dictionnaire issu de ma première méthode __init__. Je souhaiterais pouvoir utiliser ma méthode modifyValues sur tous les dictionnaires que j'ai obtenu dans __init__. En résumé, voilà mes questions:{'Yb172': ['0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']}
1- Y a-t-il un moyen de passer mes dictionnaires directement de ma méthode __init__ vers modifyValues, ou suis-je obligé de repasser par le main? En d'autres termes, suis-je obligé d'appeler ma fonction modifyValues a la ligne 16 (dans le main) ou puis-je l'appeler immediatement dans __init__?
2- Si la réponse à la question 1- est non -- i.e. je peux passer mes dictionnaires directement de __init__ vers modifyValues, suis-je obligé de mettre mes dictionnaires dans un (unique) tuple, et envoyé ce tuple de __init__ vers main, puis de main vers modifyValues? En l'état des choses, je n'arrive à récupérer qu'un seul dictionnaire (le dernier) dans modifyValues. En d'autres termes, quel est le meilleur moyen de passer tous mes dictionnaires d'une méthode à l'autre?
Merci de votre aide!
Partager