我正在尝试用Python制作一些东西。 我正在尝试从另一个文件导入一个变量,但它似乎不起作用......因为它给出了这个
AttributeError: 'function' object has no attribute 'langName'
这是包含变量的片段(类是L10N - PS:不在同一个代码中)
def buildName(self):
langName = 'names_'+self.language.upper()+'.txt'
print 'Current Loaded Names:'+langName()+'.'
return langName
以及我尝试导入的部分(这是错误的位置):
names = [l.strip('\n\r').split('*')[1:] for l in open(pp+'data/etc/'+l10n.buildName.langName+'',"r").readlines() if not l.startswith('#')]
无论如何要解决它?我导入了它,我不确定它会起作用。
编辑: TypeError:必须首先使用l10n实例调用未绑定方法buildName() 争论(没有取而代之)
现在给出这个。我不知道为什么。
答案 0 :(得分:1)
代码有两个问题。第一个是buildName
,我评论过它:
def buildName(self):
langName = 'names_'+self.language.upper()+'.txt'
print 'Current Loaded Names:'+langName+'.' # <-- removed parens
return langName # <-- this is returned. no need to try to access outside the func
第二个是对此的呼吁。需要调用l10n.buildName
,为您返回langName
,不需要查找。
names = [l.strip('\n\r').split('*')[1:] for l in open(pp+'data/etc/'+l10n.buildName()+'',"r").readlines() if not l.startswith('#')]
答案 1 :(得分:0)
在您的代码段中
langName是一个名称,所以你不能使用()
来调用函数
def buildName(self):
langName = 'names_'+self.language.upper()+'.txt'
print 'Current Loaded Names:'+langName+'.'
return langName
从()
langName()
答案 2 :(得分:0)
这是另一个问题:你想调用一个函数l10n.buildName()
,而是试图通过l10n.buildName.langName
来访问函数的局部变量。这是不可能的
由于您尝试从langName
函数获取属性l10n.buildName
,因此会出现'function' object has no attribute 'langName'
异常