__dict__ 関数を使用せずに、既存の値をクラスの辞書に変換する必要があります。詳細は以下。
現在の出力は以下のようになります (全レコードの一部のみ、これは単なる例です):
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 ペアを追加できるコードを作成します。ディクショナリを作成する限り、ファイル内のデータはすでにコース (キー):グレード(値) のペアになっているため、ディクショナリの作成はかなり簡単です。split を使用してペアを取得し、もう一度 2 つの部分を取得して辞書を作成します。したがって、生徒ごとに、イニシャライザ (__init__) 関数で空の辞書を作成し、次に course:grade ペアを分割し、成績追加メソッドを使用してそれらを生徒オブジェクトに追加します。次に、add、change、および retrieve メソッドを使用するコードを記述します。」
そのような辞書を作成する方法はまだわかりません。