我正在努力学习课程,有些东西让我们回来了,我明白了
"NameError: global name 'self' is not defined"
Run Code Online (Sandbox Code Playgroud)
每个类字段都会发生同样的情况.你能帮我找到我做错了什么,谢谢你
码:
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()
Run Code Online (Sandbox Code Playgroud)
问题出在这里:
a = Assignment(self, name, discription, deadline, grade, studentID)
Run Code Online (Sandbox Code Playgroud)
这是一个@staticmethod,所以self没有定义.
事实上,这些价值观都没有被定义,而是想到它 - 除了studentID.