【发布时间】:2021-12-05 23:10:54
【问题描述】:
我是 python 中的类和对象的新手,需要帮助。
我需要创建一个具有“所学课程”属性的学生班级。该对象应存储班级编号(如 001)、上它的学期(如“秋季”)以及学生获得的成绩。
我被“Class taken” 属性困住了。我不明白我是否必须创建一个列表或以其他方式定义它。
基本上,我无法定义一个列表并调用它并在函数中使用它。
错误是
NameError: name 'self' is not defined
提前感谢您的帮助:)
class Student(object):
def __init__(self, number,ClassNumber,Semester,Grade):
self.number = number
self.classTaken=[]
def register():
ClassNumber = input('Enter ClassNumber: ')
Semester = input('Enter Semester: ')
Grade = input('Enter Grade: ')
print(self.classTaken.append(Student(Semester)))
student1= Student.register(self.classTaken)
【问题讨论】:
-
代码存在一些问题。例如,属性
self.Classes似乎没有在任何地方定义; register 是一个函数,但应该是一个方法;此外,list.append不会返回任何内容。 -
如果你解释你想要达到的目标会有所帮助。例如,
Student.register调用应该返回什么?classTaken的用途是什么? -
Student.register 需要收集 ClassNumber、Semester、Grade 并放在一个对象中。 Classes taken 是一个对象,应该存储班级编号(如 001)、学习的学期(如“Fall”)以及学生获得的成绩。
-
如果我理解正确,我认为你根本不需要 Classes 属性。那么Student.register应该是一个返回新Student实例的方法吧?实例中应该有提到的属性。
-
请贴出实际缩进的代码。
标签: python list function class object