简体   繁体   English

Python变量为空我不知道为什么

[英]Python Variable empty i don't know why

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. 当我实例化类时,变量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

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 我习惯了Java

You haven't initialized dossierP and dossierM instance variables in __init__() : 您尚未在__init__()初始化dossierPdossierM实例变量:

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

Watch self. self.观察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. 另外,由于似乎dossierProddossierModif变量仅对具有OBDI类的实例OBDI ,因此删除dossierProd = ""dossierModif = ""行。

Also, you probably don't want to share listeFichierProd and listeFichierModif lists between OBDI class instances - initialize lists in __init__() : 另外,您可能不想在OBDI类实例之间共享listeFichierProdlisteFichierModif列表-在__init__()初始化列表:

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

and remove listeFichierProd = [] and listeFichierModif = [] lines. 并删除listeFichierProd = []listeFichierModif = []行。

Make sure you understand what is discussed in the following threads: 确保您了解以下线程中讨论的内容:

Hope that helps. 希望能有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM