python是我第一門接觸到的物件導向的語言,很久前學過pyhton的基礎語法,和大多數人一樣,學了基礎過後了解了很多方向,學過一點基於requests的爬蟲,也了解過基於pygame的遊戲開發相關知識,也了解過python的numpy科學計算庫。到現在也有一段時間了,也差不多都忘了,感覺還是個小白。現在想回來繼續python的物件導向學習,不曾想一來就犯了這麼低階的錯誤。。。
從面向過程到物件導向,其實也好理解,感覺類似於在寫標頭檔案並實現介面的過程就是建立類,實現的介面函式可以說方法。但是總感覺有點不習慣。。。剛接觸物件導向,還得深入學啊tat
class studentgpa:
def _init_(self,name,num,allcredits,points):
self.name = name;
self.num = num;
self.credits = float(allcredits)
; self.points = float(points)
; def getname(self):
return self.name,self.num;
def getcredits(self):
return self.credits;
def getpoint(self):
return self.points;
def gpa(self):
return self.points / self.credits;
def makestudent(infostr):
#infostr為檔案中的一行內容,建立乙個學生物件,返回studentgpa物件
name,num,allcredits,points = infostr.split(
"\t");
return studentgpa(name,num,allcredits,points)
;#輸入讀入資料的文字檔案名,以讀方式開啟
filename = input(
"enter name the grade file:");
fp = open(filename,
"r")
;#從檔案中讀入一行,建立第乙個學生物件
best = makestudent(fp.readline())
;#計算gpa最高,best物件存放gpa最高的學生
for line in fp:
s = makestudent(line)
;if s.gpa(
) > best.gpa(
): best = s;
#關閉檔案
fp.close();
print(
"成績最好的學生是:"
, best.getname())
;print(
"學分:"
,best.getcredits())
; print(
"gpa:"
,best.gpa())
;
程式一跑,提示錯誤,typeerror:studentgpa() takes no arguments?
我的類沒有引數??
enter name the grade file:students.txt
traceback (most recent call last):
file "/users/liuxin/desktop/python/物件導向/studentgpa.py"
, line 30, in best = makestudent(fp.readline())
; file "/users/liuxin/desktop/python/物件導向/studentgpa.py"
, line 23, in makestudent
return studentgpa(name,num,allcredits,points)
;typeerror: studentgpa(
) takes no arguments
終於發現錯誤了。。就是下面這一行:
def
_init_
(self,name,num,allcredits,points)
:
左右少下劃線。。。
正確**:
def
__init__
(self,name,num,allcredits,points)
:
然後就可以正確執行了!
enter name the grade file:students.txt
成績最好的學生是: (
'llllx'
,'5601117150'
)學分: 101.0
gpa: 0.04455445544554455
python錯誤找回 python遇到的錯誤
python使用在中遇到的錯誤 1.dll load failed python importerror dll load failed 1 不是有效的 win32 應用程式 對應版本和位數 python 2.7.13 v2.7.13 a06454b1afa1,dec 17 2016,20 42 5...
python語法中錯誤 Python中的錯誤和異常
前言 錯誤是程式中的問題,由於這些問題而導致程式停止執行。另一方面,當某些內部事件發生時,會引發異常,從而改變程式的正常流程。python中會發生兩種型別的錯誤。語法錯誤 邏輯錯誤 異常 語法錯誤 如果未遵循正確的語言語法,則會引發語法錯誤。例 初始化amount變數 amount 10000 檢查...
python陣列記憶體錯誤 Numpy陣列錯誤記憶體
執行乙個模型並在numpy陣列中返回結果,我得到記憶體錯誤。在 版本ubuntu 14.04.3 lts ec2 g2.2x大影象 ami 125b2c7215gb記憶體,8vcpu python python 2.7.6 在numpy.version.version版本 1.13.3 在16gb記...