i`m trying to learn classes, and something is holding em back, i get
"NameError: global name 'self' is not defined"
the same happens to each class field. can you help me find what am i doing wrong thank you
Code:
class Assignment:
    def __init__(self, name, discription, deadline, grade, studentID):
        self.name = name
        self.studentID = studentID
        self.description = discription
        self.deadline = deadline
        self.grade = grade
    def __str__(self):
        return "studentID:" + self.studentID + "assignment name:" + self.name +" description:" + self.description + " deadline:" + self.deadline + " grade:" + self.grade
    def validation(self):
        errors= []
        if self.studendID == "":
            errors.append("No existing student ID.")  
        if self.description == "":
            errors.append("No existing description.")
        if self.deadline == "":
            errors.append("No existing deadline.")      
        if self.deadline == "":
            errors.append("No existing deadline.")    
        return errors
    @staticmethod
    def dummyAssignments():
        ret = []
        for studentID in range(100, 121):
            print "sda"
            a = Assignment(self, name, discription, deadline, grade, studentID)
            ret.append(a)            
        return ret   
def testAssigment():
    a = Assignment("","","","","")
    print a
testAssigment()   
print Assignment.dummyAssignments()
                The problem is here:
a = Assignment(self, name, discription, deadline, grade, studentID)
This is in a @staticmethod, so self isn't defined.
Indeed, none of those values are defined, come to think of it -- except studentID.
You don't need to pass self when instantiating your class.
Assignment(self, name, discription, deadline, grade, studentID)
should be
Assignment(name, discription, deadline, grade, studentID)
The error is letting you know you are trying to use a var self that is not defined in either local or global scope.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With