0

ここにいくつかのスニペットコードがあります。リストされたメソッドをテストしましたが、正しく機能しますが、このメソッドを実行してテストすると(countLOC)、インスタンスメソッド呼び出し()を持つ最初の変数のみが初期化されるようi = self.countBlankLines()です。私が明らかに行方不明になっている明らかな理由を誰かが知っていますか?

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

countBlankLines()3を返すので(正しく)、これは-3を返します。ただし、37をcountDocStringLines()=6およびcountCommentLines()=4、countLines()=50として返す必要があります。ありがとうございます。

4

1 に答える 1

5

ローカル変数が初期化されていない場合(コードでは不可能です!)、0にはなりません。むしろ、ローカル変数を使用しようとすると、NameError例外が発生します。これらの他のメソッド呼び出し(最初のメソッド呼び出しを除く)が0(または式で合計0になる数値)を返すことは100%確実です。

推測するのは難しいですが、コードは表示されていませんが、あなたのコメントから、私の水晶玉は、インスタンス変数としてイテレータがあることを示しています。それを反復する最初のメソッドはそれを使い果たし、他のメソッドはそれを空にします。

于 2009-10-08T03:00:22.780 に答える