Python建立類時錯誤 型別錯誤 類無引數

2021-10-01 19:04:54 字數 2439 閱讀 5614

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記...