在python中输出一个dict

时间:2015-04-03 20:25:08

标签: python

嗨,大家好,我正在努力学习这些课程。
这就是我要做的:cours代表courseetudiant代表student。我必须创建一个类Student,它将执行以下操作,我还必须使用repr。所以用学生编号创建对象并添加课程

>>> d = Etudiant(12456)
>>> d.addCours('csi2520')
>>> d.addCours('csi2772')
>>> d.addCours('csi2510')
>>> d
12456:[ 'csi2520', 'csi2772', 'csi2510']
>>> d.cours('csi2510')
True
>>> d.cours('csi4900')
False

这就是我所做的,但它不起作用

class Etudiant:
    cours=[]
    def __init__(self, numero):
        self.numero=numero
        self.classe={self.numero:self.cours}
        repr(self.classe)
    def addCours(self, cours1):
        self.cours.insert(-1,cours1)

请保持简单,我是新手

1 个答案:

答案 0 :(得分:3)

要改变Python对象在打印时的外观,您需要实现一个名为__repr__的魔术方法(表示的简称)。您也不需要将学号存储在cours变量中:

class Etudiant(object):
    def __init__(self, numero):
        self.numero = numero
        self._cours = []
    def addCours(self, cours):
        self._cours.append(cours)
    def cours(self, cours):
        return cours in self._cours
    def __repr__(self):
        return '{}: {}'.format(self.numero, self._cours)

测试:

>>> d = Etudiant(12456)
>>> d.addCours('csi2520')
>>> d.addCours('csi2772')
>>> d.addCours('csi2510')
>>> d
12456: ['csi2520', 'csi2772', 'csi2510']
>>> d.cours('csi2510')
True
>>> d.cours('csi4900')
False