[Tutor] typerror
Roshan S
roshan.s at live.com
Fri Dec 11 16:20:13 CET 2009
On Fri, 11 Dec 2009 19:12:32 +0400, Dave Angel <davea at 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!
More information about the Tutor
mailing list