[英]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__()
初始化dossierP
和dossierM
实例变量:
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. 另外,由于似乎
dossierProd
和dossierModif
变量仅对具有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
类实例之间共享listeFichierProd
和listeFichierModif
列表-在__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.