<p>您的代码完全正确,只是缩进错误</p>
<pre><code>class Student:
def __init__(self,name,ID,dept=None):
self.name=name
self.ID=ID
if dept==None:
self.dept="CSE"
elif dept!=None:
self.dept=dept
self.sugg=""
self.dE=0
def dailyEffort(self,hour): #Clearly this is a method
self.hour=hour
self.dE+=self.hour
if self.hour<=2:
self.sugg="Should give more effort!"
elif self.hour<=4:
self.sugg="Keep up the good work!"
else:
self.sugg="Excellent! Now motivate others."
def printDetails(self):
print("Name: ",self.name)
print("ID: ",self.ID)
print("Department: ",self.dept)
print("Daily Effort: ",self.dE," hour(s)") #I'm not even calling that method over here
print("Suggestion: ",self.sugg)
bob = Student('Bob', 123)
bob.dailyEffort(3) #This is where the code mistakes dailyEffort as an attribute
bob.printDetails()
print('========================')
alice = Student("Alice", 456, "BBA")
alice.dailyEffort(2)
alice.printDetails()
print('========================')
carol = Student("Carol", 777, "MAT")
carol.dailyEffort(6)
carol.printDetails()
</code></pre>
<p><strong>实际输出:</strong></p>
<pre><code>Name: Bob
ID: 123
Department: CSE
Daily Effort: 3 hour(s)
Suggestion: Keep up the good work!
========================
Name: Alice
ID: 456
Department: BBA
Daily Effort: 2 hour(s)
Suggestion: Should give more effort!
========================
Name: Carol
ID: 777
Department: MAT
Daily Effort: 6 hour(s)
</code></pre>