我想從另一個文件中導入一個類,然後在我的主函數中實現成員函數。我真的只是想了解Python的語法,因爲我對這門語言仍然很陌生。我的程序很簡單,並不是真的要做太多。我或多或少只是試圖掌握Python如何解決這個問題。我的類文件名爲Parser.py和這裏的是代碼:Python:從另一個文件導入類並實現函數
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 Shell中。我是否錯過了導致我的程序無法正常工作的重要內容?
後你解決這個問題(按照Blender的答案),你將有另一個問題:'分析器。 hasMoreCommands'方法試圖訪問一個名爲'c'的變量,但是沒有這個名字的本地或全局變量。 'jacklex.py'具有全球同名的事實不會幫助你。如果你想'Parser'看到它,你需要通過它。例如,'def hasMoreCommands(self,c):',then'while parser.hasMoreCommands(c):' – abarnert 2013-02-13 01:21:56
如果我想不斷地讀'c'我想讓它在循環內部,但是當我把'c = f.read(1)'在我的循環中我得到一個錯誤,說'name'c'沒有被定義',它指的是'parser.hasMoreCommands(c)'然後我怎麼會通過這個錯誤?' – 2013-02-13 01:42:44