-1

我正在尝试用 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:未绑定的方法 buildName() 必须以 l10n 实例作为第一个参数调用(而不是一无所获)

现在给出这个。我不知道为什么。

4

3 回答 3

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('#')]
于 2014-02-04T06:05:24.953 回答
0

在你的片段中

langName 是一个名字,所以你不能使用()which is 来调用函数

def buildName(self):
   langName = 'names_'+self.language.upper()+'.txt'
   print 'Current Loaded Names:'+langName+'.'
   return langName

已从()_langName()

于 2014-02-04T05:59:30.557 回答
0

这是另一个问题:你想调用一个函数l10n.buildName(),但是你试图通过做来访问函数的局部变量l10n.buildName.langName。这是不可能的

由于您试图langNamel10n.buildName函数中获取属性,因此您会遇到'function' object has no attribute 'langName'异常

于 2014-02-04T06:01:38.203 回答