dimanche 31 octobre 2021

John Guttag's Figure 8.4 class Grad Student, what should the if statement look like for an undergraduate and a graduate student?

import datetime

class 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's name is lexicographicallyless than other's name, and False otherwise"""
    if self.lastName == other.lastName:
        return self.name < other.name
    return self.lastName < other.lastName

def __str__(self):
    """Returns self's name"""
    return self.name

class MITPerson(Person):

nextIDNum = 0 #identification 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): def init(self, name, classYear): MITPerson.init(self, name) self.year = classyear def getClass(self): return self.year if Grad != p5: print("Grad student is false") passstrong text

Aucun commentaire:

Enregistrer un commentaire