Python变量空我不知道为什么

时间:2014-03-26 18:05:17

标签: python class python-2.7 instance

伙计我的变量有问题。

当我实例化我的课时,我的变量dossierProd和dossierModif不是空的,但是当我想要使用另一个函数时,她是空的。

    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

你知道为什么我的变量是空的吗?

感谢您的回复。 抱歉我的英文不好;)


哦,谢谢,这个错误是如此愚蠢。 我习惯了java

1 个答案:

答案 0 :(得分:1)

您尚未在dossierP中初始化dossierM__init__()个实例变量:

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

在此处观看self.

此外,由于dossierProddossierModif变量似乎仅在您拥有OBDI类的实例时才有意义,因此请移除dossierProd = ""和{{1}行。

此外,您可能不想在dossierModif = ""类实例之间共享listeFichierProdlisteFichierModif列表 - 初始化OBDI中的列表:

__init__()

并删除def __init__(self, dossierP, dossierM): self.dossierProd = dossierM self.dossierModif = dossierM self.listeFichierProd = [] self.listeFichierModif = [] listeFichierProd = []行。

确保您了解以下主题中讨论的内容:

希望有所帮助。