0

別のファイルからクラスをインポートし、メイン関数にメンバー関数を実装しようとしています。私はまだPythonの構文を理解しようとしているだけです。私はまだ言語に慣れていないからです。私のプログラムは単純で、あまり多くのことをするつもりはありません。私は多かれ少なかれ、Python がこれをどのように行っているかを理解しようとしています。私のクラスファイルは Parser.py と呼ばれ、コードは次のとおりです。

class Parser:
def hasMoreCommands(self):

    if not c:
        return false
    else:
        return true

私のメイン関数は jacklex.py というファイルにあります。メイン関数は入力ファイルを開くだけで、テキストを出力ファイルにコピーします。コードは次のとおりです。

import Parser
from Parser import *

f = open('/Python27/JackLex.txt' , 'r+')
fout = open('/Python27/output.txt' , 'w')

while Parser.hasMoreCommands:
    c = f.read(1)
    fout.write(c)
print "All Done" 
f.close()
fout.close()

私の問題は、プログラムが実行されることですが、無限ループに陥っているようです。出力ファイルにテキストが出力されることはなく、「すべて完了」は Python シェルに出力されることもありません。プログラムが正常に動作しない原因となっている重要な何かが欠けていますか?

4

1 に答える 1

3

Parser.hasMoreCommands出力ではなく、(バインドされていない) メソッドを参照します。常に評価されTrueます。

パーサーのインスタンスを作成してから、メソッドを呼び出す必要があります。

parser = Parser()

while parser.hasMoreCommands():
    ...
于 2013-02-13T01:07:32.103 に答える