On Fri, 11 Dec 2009 19:12:32 +0400, Dave Angel <da...@ieee.org> wrote:
Roshan S wrote:
<div class="moz-text-flowed" style="font-family: -moz-fixed">class
Student:
print"We have a new student "
def __init__(self,name='',credit=0,grade=0,quality=0):
self.name=name
self.credit=credit
self.grade=grade
self.quality=quality
def inputstudent(self):
self.name=raw_input("Enter student Name ")
self.credit=input("What da credit hours ")
self.grade=input("What da grade ")
def quality(self):
self.quality=self.credit*self.grade
print"Quality Points: ",self.quality
def average(self):
quality()
gpa=self.quality/self.credit
print"Grade point average: "+self.grade
if gpa == 4: print "Grade: A"
elif gpa == 3: print "Grade: B"
elif gpa == 2: print "Grade: C"
elif gpa == 1: print "Grade: D"
def outputstudent(self):
"Name: "+self.name
#main
#create new student
stud1=Student()
#run teh method
stud1.inputstudent()
stud1.outputstudent()
stud1.quality()
stud1.average()
RUN
We have a new student
Enter student Name r
What da credit hours 3
What da grade 5
Traceback (most recent call last):
File "C:\Users\Roshan\Desktop\no3.py", line 38, in <module>
stud1.quality()
TypeError: 'int' object is not callable
PYTHON version 2.6.3, windows 7
In your Student class, you're using attribute quality for two very
different purposes. You have a method by that name, and you have an
instance variable by that name. You need to call one of them something
else, probably the instance variable. Don't forget to change all the
references to it, both in __init__() and in the method quality().
HTH
DaveA
Thanks!!! Problem Solved!
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor