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

Reply via email to