Bonjour à tous,

J'ai un fichier main.py qui lorsqu'il est lancé me créé un objet Configuration afin de récupérer un chemin et un nom de fichier dans un fichier qui s'appel config.ini:

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
17
18
19
 
import sys
import time
 
from Module.config import config
 
class LoadAll():
 
    def __init__(self, BulkFile) :
        #Load Configuration file (config.ini)
        self.Configuration = config.ConfigIniFile("config.ini")
        print self.Configuration.homepath
        print self.Configuration.configfilename
        time.sleep(5)
 
if __name__ == "__main__" :
 
    f = sys.argv[1:][0]
    LoadAll(f)

Le fichier config.py dans lequel j'ai une classe comme définie ci dessous et qui est appelé dans le fichier main.py est le suivant:

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
class ConfigIniFile():
 
    def __init__(self, configfile):
        with open(configfile, "r") as self.configini :
            for self.lines in self.configini :
                self.line = self.lines.strip().split("=")
 
                if self.line[0].strip() == "[home]" and self.line[1].strip() != "":
                    self.homepath = self.line[1].strip()
 
                        #Check if path is a directory
                        if os.path.exists(self.homepath):
                            pass
 
                        else :
                            print "ERROR path does not exist !"
 
                if self.line[0].strip() == "[home]" and self.line[1].strip() == "":
                    print "ERROR home path does not declared !"
 
                if self.line[0].strip() == "[ConcaFileName]" and self.line[1].strip() != "":
                    self.configfilename = self.line[1].strip()
 
                if self.line[0].strip() == "[ConcaFileName]" and self.line[1].strip() == "":
                    print "ERROR file name is not defined !"
 
 
if __name__ == "__main__" :
 
    Config = ConfigIniFile("config.ini")
Dans un autre fichier Listing.py où je n'ai pas de classe mais juste une fonction, je souhaite récupérer le self.homepath :

Pour l'instant je fait comme ceci et ça fonctionne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
from Module.config import config
 
def ListingPath():
    Configuration = config.ConfigIniFile("config.ini")
    home = Configuration.homepath
sauf que je n'ai pas l'impression que ce soit la bonne méthode car je suis obligé de recréer un objet Configuration.

L'object Configuration que je créé dans le fichier main.py existe, je dois donc être capable de le récupérer sans devoir le recréer ?

J'ai regardé du coté des héritages, mais de ce que j'ai pu lire ce n'est vrai que pour les classes, mais pas entre classe et méthode ou inversement ? Vous me confirmez ?

Merci d'avance pour vos réponses.