我需要在不使用 __dict__ 函数的情况下将现有值转换为 Class 中的字典。详情如下。
当前输出如下所示(仅占总记录的一部分,这只是示例):
Abair, 131 Laconia St, 7, PHYS271:C|CHEM271:C|MUSC101:A|ANTA321:B
Babeau, 60 Parker St, 8, GERM111:B|COM432:A|ENGR251:C
Babin, 44 Griggs Rd, 9, MECH312:D|MATH142C|GEOG108:B
我需要的是课程等级对的字典格式的输出:
Babeau, 60 Parker St, 8, {GERM111:B, COM432:A, ENGR251:C}
我的课在下面。Class Student 是 Class Person 的子类。
class Person(object):
def __init__(self, name, address):
self.name = name
self.address = address
def get_name(self):
return self.name
def get_address(self):
return self.address
def greet(self):
print "Hello, my name is " + self.name
def print_person(self):
print self.name, self.address
class Student(Person):
next_id = 0 # A unique ID for each student
def __init__(self, name, address, record):
Person.__init__(self, name, address)
Student.next_id += 1
self.id = Student.next_id
self.record = record
def get_id(self):
return self.id
def add_to_record(self, semester_grades):
self.record += semester_grades
def get_record(self):
return self.record
def greet(self):
print "How's it going? I'm " + self.name
def print_person(self):
grades = str(self.record)
print "%s, %s, %i, %s" % (self.name, self.address, self.id, grades)
创建字典的说明如下。我不认为我可以使用 __dict__ 功能。
将现有值添加到每个学生的字典中,然后有代码允许添加额外的 course:grade 对。至于创建字典,文件中的数据已经在 course (key):grade(value) 对中,因此构建字典应该相当容易。只需使用 split 获取对,然后再次获取两个部分并构建字典。因此,对于每个学生,在初始化程序 (__init__) 函数中创建一个空字典,然后拆分 course:grade 对并使用成绩添加方法将它们添加到学生对象中。然后编写一些代码来使用添加、更改和检索方法。”
我仍然无法弄清楚如何创建这样的字典。