Pregunta

guys i have a problem with my variable.

When i instance my class my variable dossierProd and dossierModif is not empty but when i want use another function she is empty.

    import glob
    class OBDI:

dossierProd = ""
dossierModif = ""
listeFichierProd = []
listeFichierModif = []

def __init__(self, dossierP, dossierM):
    dossierProd = dossierM
    dossierModif = dossierM

def recupListeFichier(self):
    HERE MY VARIaBLE dossierProd & dossierModif  as empty
    for fichier in glob.glob(str(self.dossierProd) + '*.csv'):
        self.listeFichierProd.append(fichier.replace("\\", "/"))

    for fichier in glob.glob(str(self.dossierModif) + '*.csv'):
        self.listeFichierModif.append(fichier.replace("\\", "/"))



    if len(self.listeFichierProd) != len(self.listeFichierModif):
       print "toto

Have you got an idea why my variable is empty ?

Thx to your response. Sorry for my bad english ;)


Oh thanks, this error is so stupid. I'm to be accustomed to java

¿Fue útil?

Solución

You haven't initialized dossierP and dossierM instance variables in __init__():

def __init__(self, dossierP, dossierM):
    self.dossierProd = dossierM
    self.dossierModif = dossierM

Watch self. here.

Also, since it appears that dossierProd and dossierModif variables make sense only for when you have an instance of a OBDI class, remove dossierProd = "" and dossierModif = "" lines.

Also, you probably don't want to share listeFichierProd and listeFichierModif lists between OBDI class instances - initialize lists in __init__():

def __init__(self, dossierP, dossierM):
    self.dossierProd = dossierM
    self.dossierModif = dossierM
    self.listeFichierProd = []
    self.listeFichierModif = []

and remove listeFichierProd = [] and listeFichierModif = [] lines.

Make sure you understand what is discussed in the following threads:

Hope that helps.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top