Python:在类中将现有值转换为字典,而不使用_dict__

Python:在类中将现有值转换为字典,而不使用_dict__,python,class,dictionary,Python,Class,Dictionary,我需要将类中的现有值转换为dictionary,而不使用_udict__;函数。详情如下 当前输出如下所示(仅占总记录的一部分,这只是示例): 我需要的是课程成绩对的字典格式输出: Babeau, 60 Parker St, 8, {GERM111:B, COM432:A, ENGR251:C} 我的班级在下面。班级学生是班级人的一个子班级 class Person(object): def __init__(self, name, address): self.

我需要将类中的现有值转换为dictionary,而不使用_udict__;函数。详情如下


当前输出如下所示(仅占总记录的一部分,这只是示例):

我需要的是课程成绩对的字典格式输出:

Babeau, 60 Parker St, 8, {GERM111:B, COM432:A, ENGR251:C}

我的班级在下面。班级学生是班级人的一个子班级

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函数

将每个学生的现有值添加到字典中,然后生成允许添加额外课程:年级对的代码。 就创建字典而言,文件中的数据已经在过程(键):等级(值)对中,因此构建字典应该相当容易。只需使用split来获取这些对,然后再次获取这两个部分并构建字典。 因此,对于每个学生,在initialiser(_init__)函数中创建一个空字典,然后拆分课程:成绩对,并使用成绩添加方法将它们添加到学生对象中。 然后编写一些代码来使用add、change和retrieve方法。”


我仍然不知道如何创建这样的字典。

假设您想将班级/年级的字符串拆分为一个dict,您可以这样做:

s = "PHYS271:C|CHEM271:C|MUSC101:A|ANTA321:B"
d = dict(x.split(':') for x in s.split('|'))

>>> d
{'CHEM271': 'C', 'MUSC101': 'A', 'PHYS271': 'C', 'ANTA321': 'B'}

首先,
\uuu dict\uuu
是一个字典,而不是一个函数;
dict
是一个函数(和一个类型)第二,是什么让你认为你不能使用它们中的一个呢?我不能,因为这是一个要求。你有什么问题?看起来你的作业相当直接地描述了从字符串创建dict的步骤:使用
split
获得对,然后再次使用
split
将它们分离为key/value,然后添加到字典中。如何将其添加到学生类中?如何使其成为类内的函数?它应该对self.record做些什么
s = "PHYS271:C|CHEM271:C|MUSC101:A|ANTA321:B"
d = dict(x.split(':') for x in s.split('|'))

>>> d
{'CHEM271': 'C', 'MUSC101': 'A', 'PHYS271': 'C', 'ANTA321': 'B'}