Python实例方法进行多个实例方法调用

时间:2009-10-08 02:29:40

标签: python methods method-call

以下是一些代码段。我已经测试了列出的方法并且它们正常工作,但是当我运行并测试此方法(countLOC)时,它似乎只是初始化了具有实例方法调用的第一个变量(i = self.countBlankLines())。有人知道我明显错过的明显原因吗?

def countLOC(self):  
    i = self.countBlankLines()  
    j = self.countDocStringLines()  
    k = self.countLines()  
    p = self.countCommentLines()  
    return k-i-j-p

返回-3,因为countBlankLines()返回3(正确)。但是,它应该返回37为countDocStringLines() = 6而countCommentLines() = 4而countLines() = 50谢谢。

1 个答案:

答案 0 :(得分:5)

如果未初始化局部变量(根据代码不可能!),它们不会为0 - 相反,当您尝试使用它们时,您会收到NameError异常。 100%肯定那些其他方法调用(第一个除外)返回0(或表达式中总数为0的数字)。

很难猜测,没有显示他们的代码,但是从你的评论我的水晶球告诉我你有一个迭代器作为一个实例变量:第一个迭代它的方法耗尽它,其他方法因此发现它是空的。 / p>