![](/img/trans.png)
[英]AttributeError: 'Student' object has no attribute '_values'
[英]AttributeError: 'Student' object has no attribute 'calculateGrade'
class Student:
def __init__(self, name, id, standard, phyMarks, chemMarks, mathsMarks):
self.name = name
self.id = id
self.standard = standard
self.phyMarks = phyMarks
self.chemMarks = chemMarks
self.mathsMarks = mathsMarks
def calculateGrade(Student):
if self.phyMarks + self.chemMarks + self.mathsMarks >= 250:
return "A"
elif self.phyMarks + self.chemMarks + self.mathsMarks >= 150:
return "B"
else:
return "C"
def haspassed(Student):
if calculateGrade() == "C":
return "Failed"
else:
return "Passed"
Raghav = Student("Raghav", 1, 9, 23, 56, 10)
Madhav = Student("Madhav", 2, 9, 98, 79, 83)
Hemant = Student("Hemant", 3, 9, 99, 100, 100)
Harish = Student("Harish", 4, 9, 89, 72, 68)
Raunak = Student("Raunak", 5, 9, 100, 100, 100)
print("Student with name" , Raghav.name, Raghav.id, "has scored grade", Raghav.calculateGrade(), ".", "So his pass status is , ", Raghav.hasPassed())
print("Student with name" , Madhav.name, Madhav.id, "has scored grade", Madhav.calculateGrade(), ".", "So his pass status is , ", Madhav.hasPassed())
print("Student with name" , Raunak.name, Raunak.id, "has scored grade", Raunak.calculateGrade(), ".", "So his pass status is , ", Raunak.hasPassed())
我沒有在 print 語句中獲得 calculateGrade 和 hasPassed 屬性。 請幫忙,因為我有這個作業。 給定的問題是 - 創建一個 class 與 python 命名的學生給屬性稱為名稱,id,標准,physicsMarks,chemistryMarks,mathsMarks 定義 2 方法 calculateGrade() 和 hasPassed() 如果標記> = 250 - > A 如果標記> = 150 - > B 否則 C 如果學生有 C 成績他不及格,否則通過創建至少 5 個實例打印(“有名字的學生”,shubham.name 和 id:,shubham.id 得分所以他的成績 shubham.calculateGrade()狀態是shubham,hasPassed())
有兩點需要考慮。 縮進和“自我”。
class Student:
def __init__(self, name, id, standard, phyMarks, chemMarks, mathsMarks):
# do something
def calculateGrade(Student):
# do something
def haspassed(Student):
# do something
因為calculateGrade()
和haspassed()
縮進太遠,它成為__init__()
的一部分
盡管在 class 函數中使用Student
作為第一個參數會起作用,但使用標准self
被認為是最佳實踐。
您的代碼應該看起來更像這樣:
class Student:
def __init__(self, name, id, standard, phyMarks, chemMarks, mathsMarks):
# do something
def calculateGrade(self):
# do something
def haspassed(self):
# do something
編輯添加:
另外,也許再看看這個問題。 不是為你做功課,而是鼓勵你思考各種選擇。
...如果學生有 C 成績,他不及格,否則通過。
...所以他的通行證狀態是 shubham.hasPassed()
這聽起來像是一個真/假的情況。 如果有人想多次調用來檢查通過/失敗狀態,他們需要每次運行calculateGrades()
function,這是額外的處理。 在 class 中記錄結果是否有意義? 只是思考的食物。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.