interweaving of objects DEMO
来源:互联网 发布:mac os 系统清理 编辑:程序博客网 时间:2024/05/17 01:33
#quote from MIT 'introduction to computation and programming using python, Revised'import datetimeclass Person(object): def __init__(self, name): """Create a person""" self.name = name try: lastBlank = name.rindex(' ') self.lastName = name[lastBlank+1:] except: self.lastName = name self.birthday = None def getName(self): """Returns self's full name""" return self.name def getLastName(self): """Returns self's last name""" return self.lastName def setBirthday(self, birthdate): """Assumes birthdate is of type datetime.date Sets self's birthday to birthdate""" self.birthday = birthdate def getAge(self): """Returns self's current age in days""" if self.birthday == None: raise ValueError return (datetime.date.today() - self.birthday).days def __lt__(self, other): """Returns True if self'name is lexicographically less than other's name, and False otherwise""" if self.lastName == other.lastName: return self.name < other.lastName return self.lastName < other.lastName def __str__(self): """Returns self's name""" return self.name class MITPerson(Person): nextIdNum = 0 #identificaiton number def __init__(self, name): Person.__init__(self, name) self.idNum = MITPerson.nextIdNum MITPerson.nextIdNum += 1 def getIdNum(self): return self.idNum def __lt__(self, other): return self.idNum < other.idNum class Student(MITPerson): pass class UG(Student): def __init__(self, name, classYear): MITPerson.__init__(self, name) self.year = classYear def getClass(self): return self.year class Grad(Student): pass class Grades(object): """A mapping from students to a list of grades""" def __init__(self): """Create empty grade book""" self.students = [] self.grades = {} self.isSorted = True def addStudent(self, student): """Assumes: student is of type Student Add student to the grade book""" if student in self.students: raise ValueError('Duplicate student') self.students.append(student) self.grades[student.getIdNum()] = [] self.isSorted = False def addGrade(self, student, grade): """Assumes: grade is a float Add grade to the list of grades for student""" try: self.grades[student.getIdNum()].append(grade) except: raise ValueError('Student not in mapping') def getGrades(self, student): """Return a list of grades for students""" try: #return copy of student's grades return self.grades[student.getIdNum()][:] except: raise ValueError('Student not in mapping') def getStudents(self): """Return a list of the students in the grade book""" if not self.isSorted: self.students.sort() self.isSorted = True return self.students[:] #return copy of list of students
%run "C:\Users\Administrator\test.py"
print p1
Eric Xing
print p2
Robert Miller
g = Grades()
g.addStudent(p1)
g.addGrade(p1, 100)
g.addGrade(p1, 90)
g.addGrade(p1, 97)
g.getGrades(p1)
Out[33]: [100, 90, 97]
g.addStudent(p2)
g.addGrade(p2, 80)
g.addGrade(p2, 88)
g.addGrade(p2, 82)
g.addGrade(p2, 86)
g.getGrades(p2)
Out[40]: [80, 88, 82, 86]
g.getStudents()
Out[41]: [<__main__.MITPerson at 0x6fd2d70>, <__main__.MITPerson at 0x6fd2ef0>]
for e in g.getStudents():
print e
Eric Xing
Robert Miller
0 0
- interweaving of objects DEMO
- SAP DEMO-ABAP Objects
- function invoke objects DEMO
- [读书笔记] Collections of objects
- Initializer of C++ objects
- XML Serialization of Java Objects
- Dependency of abap dictionary objects
- Mock construction of new objects
- Dependency of abap dictionary objects
- 对象数组(Array of Objects)
- Summary of "Holding Your Objects"
- Day1-5.Scope of objects
- Think in Java(11)-Collections of Objects
- [转]Understanding of Objects-Oriented, Classes, Instances
- The Core Objects of Your App
- Memory usage of Java objects: general guide
- opencv-Detection of planar objects(待完善)
- Parsing list of JSON objects with gson
- 使用 EntitysCodeGenerate 生成 PostgreSQL 的代码
- 修改分区后,导致linux上不了
- 试用期交社保吗
- 下拉菜单
- 定位,虚拟键盘,推送有问题
- interweaving of objects DEMO
- 将数组变成字符串。 implode (高级应用可用在mysql where in (1,1,3)查询)
- C语言中unsigned char* 与char*的区别?
- Search Insert Position
- centOS 6.5关闭防火墙步骤
- 淘宝分布式数据库是如何实现高可用的
- stl之list
- All I Need To Know To Be A Better Programmer I Learned In Kindergarten
- 在Birt中动态插入子表字段